Git and GitHub: what's the difference?
Working as a TA at Code Fellows, I discovered a common misconception: students who are new to web development assume that Git and GitHub are one in the same. I published this document to correct this misunderstanding.
While it is true that Git and GitHub play nice together, Git stands alone, without GitHub as a version control system. When you develop software, you reach many points where your software yields your intended result, and many points where it does not. Git allows you to memorize the points where your code works, so that you can easily return to them when things get so bad with your code that you need to start over. The more good points you have committed with Git, the less code that you will have to rewrite when you run into problems down the road. It’s called a version control system, which means that each time you have a “shippable” version of your software, you can commit it and start working on the next version without compromising the functionality of the previous versions.
Git vs GitHub
Git also provides for interaction to a centralized location for collaborative development and project backup. And for those new to Git, this is where the confusion begins.
GitHub is a wonderful place that allows you to publish your trade secrets to the world. Okay, that’s how some people may look at it—it’s actually much more than that. If you are concerned that your code is so unique that it doesn’t already exist somewhere else, GitHub allows you to create private repositories, albeit not many for free.
So what is GitHub, really? Simply put, it is a repository where you can get a free account for storing Git-controlled software. This does not have to be limited to application development either, as Git allows you to use version control for any electronic media, such as documents. GitHub provides a convenient place to store multiple versions of these files.
Why it matters
For students, this is invaluable because it allows instructors and peers to review your code and interact with it. In fact, they can download your code and run it just as you do. It can not be overemphasized how useful this is when you are discussing your code remotely. Students are also able to practice collaboration on large, useful projects with the same method as many development teams. It’s also very useful when pursuing a career, since it gives a place to showcase your work to prospective employers.
Git is a version control system that tracks your changes when working with electronic media, such as software applications. GitHub is a repository for this media and nothing more. GitHub pros may say that GitHub has much more functionality than that, and while that is true, it is not necessary to utilize that functionality in order to use GitHub with Git.
I hope that this helps everyone new to web development understand the differences between Git and GitHub, and, more importantly, how they work together to help you produce well-organized projects.