Review of GitHub Desktop

Download GitHub Desktop

GitHub Desktop is a free software for windows that allows you to work on your own or other people's open source projects which are hosted on github.com, by working on a local copy on your hard disk. After starting GitHub Desktop, if you have written a program that you want to add to a source repository at github.com, you can click on the down arrow next to the + on the top right of the screen, and make sure the create tab is selected, type a name for the project, and then fill in the folder where your github source will be located. I have my visual studio original source in a different folder to the github copy, in case anything goes wrong. For example github source could be in folders for each project under C:\Data\Applications\Github\ and visual studio projects could be in C:\Data\Applications\Visual Studio 2015\ After you have chosen the git folder and project name click Create Repository. Then copy your source from your visual studio folder to the newly created github folder on your hard disk, close and reopen github desktop, and you will be able to commit all the source files you have just copied across. Then you can click Sync to synchronize the remote and local. It is easiest to work with visual studio on the copy of your source in the "Github\" folder not the "Visual Studio 2015" folder, after that, because other people could submit changes that need to be incorporated, the original "Visual Studio 2015" copy is just a backup in case something drastically goes wrong on github. You may in fact like to manually copy changed files between the two locations, occasionally. Github Desktop keeps track of which files have changed, so it is easy to know.

If instead you want to work on someone else's project, you first login on the web to the project's location in github.com (while logged in with your details) and then click "Fork" and that will create a copy of the project in your github.com account. Then with the github desktop software, you can click the + downarrow (top left of screen) and select the clone tab and click on the project and then there is a button to clone it, it will be downloaded into your github folder under a folder for the project name. There is also a button to "update from master" when you want to bring in any changes from the upstream repository (the main github.com copy for example the github location for the project you are contributing to that belongs to the original owner) that might have been brought in from other people. It is a good idea to create a branch (click on "create new branch" button) if it is your own project (or if it is someone else's project and you might have more than one bug to fix, you can create one branch per bug), so that you don't work on your master copy. Then when you are ready to submit your changes, you can commit them and then send a pull request to have your branch incorporated into the master upstream version on github.

It is a good idea to minimize the number of changes that are submitted - sometimes visual studio will make all sorts of changes for example to a resource file, and you may need to download the original copy of that file again from github (in raw format) and make the essential changes only, manually to it using a text editor. There are two distinct locations that github desktop remembers, the remote repository and the upstream repository, the latter is determined automatically. The remote repository is the source code on github.com in your account. The upstream repository is the source code on github.com in the original owner's account that you have forked from. When you send a pull request, that enables your remote repository to be incorporated into the upstream repository, if they approve your changes. When you click on 'update from master' and then 'sync', that enables your remote repository to be updated with any changes that were incorporated by other programmers to the upstream repository. It is a good idea when you send a pull request, to post a message in the relevant issue under 'issues' on github.com on the web, so that other programmers are able to be notified of your change and any comment you like to add about it.