Skip to content

This guide and website are in beta! Help us make them awesome with your feedback!

Say Hi to Git (and Github)

Git and Github are indispensable tools in every programmer’s catalog, regardless of where they are in their coding journey. They give you the ability to edit code with confidence, compare multiple versions of it, and share your work with others. Here, we’ll give you an overview of what these tools are and what each of them does.

By the end of this article you’ll know:

Version Control is the practice of keeping track of and managing different versions of a file, such as source code for a program you’re working on. Version Control keeps track of changes made to a file, and allows you to compare multiple versions of the same code together. Think of it as the save files in a game, or the undo button in your word processor of choice: if you make a mistake or a change you are not happy with, you can restore your work to a previous version of itself!

Version Control also allows multiple people to work on the same project in parallel, without the resulting code conflicting with itself. You can work on the same program from different machines, evaluate and integrate changes made by other people, and keep track of what each team member does. It is, overall, a fantastic tool for any programmer to have, whether they are working solo or in collaboration with others.

To help with Version control, we use what is known as a VCS or Version Control System. The most well-known and supported VCS is called Git. Git is a software utility which works entirely in your own computer, and allows you to:

  • Save checkpoints of your code.
  • Look at and jump across your history of changes.
  • Merge changes together, even when they conflict.
  • Test out changes before “committing” to them.
  • Make and keep track of “branches” — multiple versions of the same program, with different features each.

Git lives locally in your system, and is run mainly through the Command Line. While that might sound intimidating at first, just getting down a few basic commands will open the doors to many awesome features.

While Git can work completely offline, many developers pair Git with a Git-based cloud platform to back up their projects in a place that’s accessible everywhere. GitHub is the most popular and widely used of them; an online platform which allows people to collaborate on the same code and track progress very easily.

When you upload a project to GitHub, it is stored in a “repository” — a specialized storage system for code. Files kept in a repository can be retrieved whenever and wherever you are, so long as you have an internet connection. GitHub also provides some nifty features: a very nice UI, which allows you to easily check your project’s history and keep track of changes and versions; an Issue Tracker to keep track of bugs and plan future features; and a very thorough Statistics tab.

However, GitHub’s biggest game-changers are its collaborative tools. When another person wants to make changes to your code, they can “fork” it, that is, make a copy of its files that they can work on their own. Then, using GitHub’s “Pull Request” system, they can submit their work for you, the owner, to review. Pull Requests thus allow users to perform bug fixes, write documentation, or even add entirely new features, without needing to modify the “original” files directly. This makes GitHub a fantastic place to connect with other coders, learn together as you work, and help each other along the way.

We explored Version Control Systems and some of the many things that can be done with them!

There is still a lot more that can be said about them, so if you are interested, pick up our zine issues on Git and GitHub and follow our online Installation Guides to get yourself started.