What are Git and GitHub?

The problem:

If you have ever found your self appending _copy , _final , final_final_MAB XYZ copy1_v6_MAB, etc. to the end of your files you’ve tried rudimentary and inelegant version control. Beyond that, you may never again know what the final file was, it will be difficult or impossible to identify what changed between versions, who made those changes, or collaborate using the same version of a file.

xkcd

Git

Git is a version control system that tracks changes in collections of files (repositories or “repos”) over time. Each repo is a self-contained project allowing you to track changes to your project in a structured and organized way. It functions similarly to a Google Doc but for code.

GitHub

GitHub is an online host for your (and other’s) Git version controlled repositories. It allows you to

  • visualize changes to your code and other non-code files,

  • store your files backed up online,

  • collaborate and share with others, and

  • keep track of bugs and to-dos.