Skip to main content

Questions related to teaching about working in the web based version control repository manager GitHub.

GitHub is a web based version of git. It is used for version control in projects with multiple people, or as an internet hosting service.

Git works with repositories, and each repository has branches. Repositories are created with a master branch, but more can be created manually.

GitHub provides a web interface for viewing a git repository.

In Git, changes are pushed to the remote repository. When creating a local branch, pushing will result in the creation of a remote branch, create from the local one. After making changes in the code, one can create a commit, which summarizes the changes made. Commits are pushed to the remote branch.

Branches don't have to be synchronized with one another (and usually are not). After pushing commits to some branch (which isn't master), it is possible to pull those commits from the branch into master. This is called a pull request.

Anyone can create a pull request. Only those who were given permission by the owner of the repository can merge a pull request. If there are merge conflicts, e.g. each version (master and the branch) has different code in the same place (changes that can be committed by other developers working in that repository), then they need to be resolved before a merge is possible. They have to be resolved manually.

Once a pull request is merged, all the commits from the pulled branch will be added to master.

GitHub makes those common actions very convenient.