We use a number of online tools to manage our workflow, collaboration and file management, for all areas of our business including graphic design and web development. One key tool is GitHub, and we often drop this into communication with our clients, and this post is to expand a little on what GitHub is and how it helps us keep control of our files.
GitHub in simple terms is a web based area of code sharing and publishing service for programmers. It is similar to what a folder does. It contains all the project files and the revision history of the files. Git is a command line tool whereas GitHub provides a web based graphical user interface. It provides additional features such as bug tracking, access control, task management and feature requests for every project. Although GitHub is primarily used for code it can be used to manage any other type of files such as a word, indesign or photoshop files. It acts as a filing system for every drafted document.
Some of the predecessors of gits like CVS and Subversion have a central “repository” or storage of all the files associated with a project. If a developer wants to make changes those changes are made to the central repository. With distributed version control system like gits if you want to make changes to a project the whole repository can be copied to your computer. You can make the necessary changes in your local copy and you can “check in” those changes onto your central server. This helps in accommodating and sharing more minute and granular changes as there is no need to connect to the server every time you make changes.
The most prominent functionality of a GitHub is “forking”- a feature which helps in copying a repository of one user’s account to another. This feature helps in accessing a project that you don’t have write access to and modifying it under your account. If you’d like to share the changes after modification, you just have to send a notification called “pull request” to the owner. The user can then with the click of a button, merge or incorporate those changes of your repository with the original repository.
These three fork, pull request and merge are the features that make GitHub so powerful. The network effect starts to play a role in GitHub when you submit a pull request, the owner or project maintainer can view your profile and all of your contributions on GitHub. If your patch is accepted, you get the credits on the original site which shows up on your profile.