by Jason Y
GitHub can be easily labeled as a distributed version control system, but GitHub is so much more than that. GitHub is a powerful collaboration and code management tool for open source and private projects. GitHub allows multiple people to work in friction-less development environments. People are able to work together on projects in organizations and communicate between each other with ease. With GitHub people are able to browse multiple repositories, create and manage different branches, and save changes both locally and on public servers. GitHub also leaves a paper trail so people it becomes easier to see who made what kind of changes to source codes.
The people who use GitHub range from developers to marketing teams to anyone that need to know what’s going on within a project. A person does not even need a proficient technical background to operate and use GitHub. With fifteen to thirty minutes of training, a user can be proficient with GitHub and understand the basic commands to navigate GitHub. For people who prefer speedy and quick commands, Git is the command line form of GitHub. This tool has basic repository hosting service but also adds so much more to provide a smooth and convenient user experience.
Many people do not know when is the right time to learn and use GitHub. Honestly, anytime is the perfect time to learn how to work with GitHub. Students can even take full advantage of GitHub. If there is a project that requires collaboration between groups of students, GitHub would allow them to add and remove code to their hearts content; all the while keeping track of all the changes. Through my internship, I was required to learn how to use Git so that it would be easier for me to get the most updated changes that the developers pushed up into the servers.
The beauty of Git is how remotely it is to access. During my internship this quarter, I noticed the flexibility of the hours for the developers. Developers were able to work from home freely or even work from coffee shops due to GitHub and its tolerance of mobility. There were about fifteen developers working in team ranging from two to five and they were all able to communicate swiftly their updates to codes. These fifteen did not include the few individuals in the marketing team who used GitHub to keep track of all the changes being made and new features added to their program.
Spinellis (2012) states, “Git allows developers and their managers to build a variety of interesting workflows.” What Spinellis means from this is that many different developers can pull from existing branches of code, create a new branch with that code, add features to the code as they like, and finally commit, push, and merge the code back to the original branch. This allows multiple developers to be working on the same set of code and eventually update and push the code back to the master branch.
Bourne (2013) says, “As nerd endeavors go, GitHub is pretty much at the top of the food chain. What began as a private project with zero commercial intent has since emerged as one of the world’s most – if not the most – powerful development tool for software.” I highly agree with this statement through personal experience because 8/10 developers at the internship that I had this quarter were all exposed to GitHub prior to attaining their job. Some of them were even asked if they knew how to use Git during their interviews. According to the article It’s GitHubs World” by Bourne, GitHub users went from 500,000 in 2010 to just under 3,000,000 in 2012.
The various popular commands that we use in Git include init, status, add, commit, push, pull, branch, rm, and merge. We begin using Git by accessing the master branch which should be our most stable branch in terms of bugs and crashes. From master branch we will create a new branch where we begin developing and adding features to our program. Within the development branch we would constantly keep pushing up latest builds and updates of our code. We also might be creating branches within our branches that will handle all of additional features within features.
Finley the author of the article What Exactly Is GitHub Anyway? from the website techcrunch.com states, “The flagship functionality of GitHub is “forking.” Forking is a brilliant feature that allows one user to pull contents from one repository and create a new branch with that content. This allows a user to make changes to an existing code easily without ruining the original code. If you want to share the code that you updated to the owner of the original code, you can do a pull request which notifies the author of the code. The author of the code can then merge the code which updates the original code with the updated version that the user added. Finley goes on to state, “These three features – fork, pull request and merge – are what make GitHub so powerful.”
In conclusion, Git is huge in the developing world and should be familiarized with. It allows for ease of access and people to work remotely. This incredible collaboration platform is highly adaptable to a team’s needs and can lead to a more organized workspace. Git is leading as a open source repository software and the integration of this software into a team’s project will definitely improve the speed and organization of their work.
Spinellis, D. (2012). Git. IEEE Software, 29(3), 100-101. Retrieved from
Bourne, W. (2013, 03). IT’S GITHUB’S WORLD. Inc, 35, 68-73. Retrieved from http://search.proquest.com/docview/1314490326?accountid=10357
Finley, K. (n.d.). Retrieved from http://techcrunch.com/2012/07/14/what-exactly-is-github-anyway/