Simply put, version control is a method for keeping track of different versions of files. Most people have engaged in some form of version control, even if they are not familiar with the term. This could be as simple as creating different files for different versions of documents (e.g. text1.txt, text2.txt, etc.). While implementing version control in this manner is fairly intuitive, it has some drawbacks. It can lead to cluttered folders, it can be difficult to keep track of what changes are made across different versions, and it can make collaborating difficult.
Ideally, a version control system will:
Most importantly, a good version control system will make a user's work simpler and easier.
While "git" and "GitHub" are sometimes used interchangeably, they actually refer to two different things. Git is a particular implementation of version control. It was created by Linus Torvalds to help manage Linux source code.
GitHub is a company that hosts git repositories and provides software for managing git. GitHub is commonly used for managing and sharing different versions of code for programming projects, but it can be used just as effectively for version control of other types of files, such as text documents.
Users can interact with git and GitHub using the command line, on the web through github.com, or with the GitHub desktop application (available at desktop.github.com). This guide covers these second two options.
Implementing version control with GitHub allows you to
Except where otherwise indicated, original content in this guide is licensed under a Creative Commons Attribution (CC BY) 4.0 license. You are free to share, adopt, or adapt the materials. We encourage broad adoption of these materials for teaching and other professional development purposes, and invite you to customize them for your own needs.