CS699: Software Foundation Lab
Git and GitHub



In this document we want to introduce you to a tool i.e. Git and a web service called GitHub. This tool is used worldwide by programmers and many more for keeping track of their project development through maintaining the data using a version control system.

What is Git?

Git is a version control system. Version control systems are a category of software tools that help a software developer manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption.

What is GitHub?

It is a web based hosting service for version control using Git. It hosts your source code projects in a variety of different programming languages and keeps track of various changes made to every iteration.

GitHub lets you create multiple branches for multiple collaborators. Each collaborator has their own working copy and they can work separately on their versions while maintaining a master branch of the project. At later stages of development, users can merge branches to bring all the necessary changes into the master branch. And if something goes wrong then you can always go back to previous versions as this tool comes with great traceability capacity (being able to trace each change made to the source code).

Repository within GitHub

A repository is like a folder for your project. Your project's repository contains all of your project's files and stores each file's revision history. You can also discuss and manage your project's work within the repository. You can own repositories individually, or you can share ownership of repositories with other people in your team.

You can restrict who has access to a repository by choosing the repository's visibility. When you create a repository, you can choose to make the repository either public or private. Public repositories are accessible to everyone on the Internet. Private repositories are only accessible to you and people you explicitly share access with.

IMPORTANT: We highly recommend to make your repository private for this theme purpose to avoid competing teams copying your source code.

Branch of a Repository

Each repository has one default branch, and can have multiple other branches. You can create multiple branches within the repository. You can use a branch to isolate development work without affecting other branches in the repository. You can merge a branch into another branch using a pull request.

Branches allow you to develop features, fix bugs, or safely experiment with new ideas in a contained area of your repository.

You always create a branch from an existing branch. Typically, you might create a new branch from the default branch of your repository. You can then work on this new branch in isolation from changes that other people are making to the repository. A branch you create to build a feature is commonly referred to as a feature branch or topic branch.


To understand how best we can utilize this feature watch the video given below:



GitHub can be made useful using a Terminal or a GitHub Desktop application.

  • Follow the videos below to understand methods for using GitHub in Terminal on Windows and Ubuntu OS:




  • Follow the videos below to understand methods for using GitHub Desktop application:

Git Playground

Play with this and get yourself familiar before committing the serious content on Git. Once familiarized with GitHub you will find this tool very helpful and reliable.

For this particular purpose refer to https://try.github.io/. This website helps you understand all parts of Git through various means of visualization and lets you practice commands.



403B48484H1E3D4744443B3C474A3B4C41463H1E1F1F
(What does this mean 🤔. Try to decode as FUN 😄.)