Understanding Github is Like Using Facebook
As a self-proclaimed technical person, I am baffled by the number of intelligent, Internet savvy professionals who attach a sense of mystery to Github. My bafflement stems from the fact that becoming a proficient user on Github is on part with any social media sites, like Facebook. Github just uses unfamiliar vocabulary. It is time to demystify the Github experience by describing it using Facebook lexicon.
‘Scary’ Github Terms
1. Git – Wikipedia defines “Git” as a distributed revision control and source code management system with an emphasis on speed.
In the social media world, we can view Git as Facebook’s Timeline. Your timeline keeps a record of past photo albums, comments, likes and status updates you have ever published. Like Facebook’s Timeline, Git provides a similar experience with your code, giving you a complete ‘timeline’ of all code that you have ‘published’ to Github.
2. Repository – This is a location to store code for a current or past project.
This is the equivalent of a Facebook photo album where you can store past or present photos (read: code) of a particular event (read: project).
3. Push – A git command to send your code (photos) to the repository (photo album) on Github (website).
Push is the equivalent command to ‘pushing’ the photo upload button on Facebook. After you make a push, the photo, like your code, is now on Facebook.
4. Commit – Saves your current code on your computer.
This is the equivalent to saving your photo on your computer before uploading to Facebook.
5. Clone - Copies a repository and push code to said repository
This is equivalent to being able to download a photo album from a Facebook Group and edit it on your computer.
6. Fork – Copies a repository into your own account.
Fork is like copying a Facebook group’s photo album (read: repository) into your profile. Fork differentiates itself from Clone in that if you upload or remove photos, the change will only be seen on your profile.
7. Pull Request – Informs others about changes to code you have pushed to a repository.
In Facebook terms, a change to photos that you have uploaded into your photo album.
After getting through the lingo, the task of mastering the most fundamental part of Github is ahead - dealing with Git on the command line. Git, unlike timeline, does not have a very friendly user experience; that is, it does not utilize buttons or flashiness. Instead, it is all about typing words out on the command line. If you are not familiar with the command line, here is a great tutorial! Once you feel confident using the command line, this link is a great source for tutorials on resolving problems like installing Git on your computer and creating a repository.
Let us know in the comments if this post was helpful. Good luck with Github!
Brad Langel is currently an associate with Startup Institute New York.