It may sound like heresy to some developers, but I prefer GUI applications to command-line applications in many cases. A few weeks ago, I started using GitHub because I have begun iOS development on a Mac, and Git and GitHub are well supported by the XCode environment. So, when GitHub released its GUI client for Windows, I had to check it out.The initial setup is a breeze. It creates a local repository area under My Documents, which makes sense, and once you provide your username and password to GitHub, it allows you to easily clone repositories to the local machine. The UI, as you can see in Figure A, is very Metro-like. Figure A
The UI looks like a Metro app even though it isn't. (Click the image to enlarge.)Clicking the branch name/icon at the top allows you to create a new branch, or to perform full branch management. The branch management is foolproof and easy to understand. I like that with merging, it visually shows you which will be the parent and the child branches when merging, as opposed to some other systems that I have seen where it is unclear which branch will take precedence in the merge. A drag/drop swaps the parent and child around. After you install the application, your Web browser is also integrated directly into GitHub. In Figure B, you can see the Clone In Windows button added to the Web application. Figure B
GitHub's Windows application also adds Web browser integration. (Click the image to enlarge.)
Working with the system locally is too easy. Just go about your work, and when you are done, use the client to commit or roll back your changes. To do that, open the repository from the main screen (click Repositories under Local, and it will be in the list, and then click the arrow on the right of the repository name), and all of your changes will appear with the chance to commit. When you are ready to post to GitHub, just click the Sync button at the top.
Why use GitHub
You may be asking "why use GitHub in the first place?" That's an excellent question. A year or two ago, I got switched on to distributed version control. Not only did I keep having bad experiences with the centralized version control systems, but Mercurial came highly recommended to me. Since I switched to Mercurial (I use it for my freelance and personal work, though at my day job I am using TFS), I've been very happy. There's less overhead and "process" needed to get things done, and Bitbucket is an easy tool for public projects.
While I have not gone in-depth with Git or GitHub to the point where I notice substantial differences, it shares the same characteristics that I like about Mercurial: a simple, easy-to-use version control system that lets individuals work on their own without the constant struggle for control over the central branch and the subsequent problems that it causes.
Because I've started using the Mac, I will be spending a lot more time with Git and GitHub in the near future. I will still be using Mercurial and Bitbucket from my Windows machine (it isn't like I will be sharing much between the two), but on a project that I may need to use both machines on (like a website) it is likely that I will use GitHub.
Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.