Skip to main content Link Menu Expand (external link) Left Arrow Right Arrow Document Search Copy Copied

Workshop Introduction

Follow along with the introductory video, slides, or text below.

View original here.

What is Version Control?

There are many times in our day to day lives when we want to keep track of different versions of things. Most commonly, keeping track of changes between these different versions is known as Version Control.

A folder full of different versions of the same file

Image credit: PhDComics | Image © jorge cham

You may have found yourself in a situation like in the image above. While you can do version control manually, there are many disadvantages to it and it can be prone to errors.

  • Your work folder will get cluttered really quickly.
  • You may accidentally edit or overwrite the wrong file.
  • You may also develop a bad naming system for files.
  • It’s easier to forget or ignore.
  • It’s harder to keep track of which file has what changes.
  • How will this work for collaborative files?

This is where Version Control Systems (like Git!) come in handy. Version Control Systems automate all the tedious parts of Version Control and also allow you to do a lot more things. Some common features of Version Control Systems include:

  • the ability to see a timeline of changes to a file.
  • the ability to revert to a previous version easily.
  • the ability to create and merge “branches” (different versions of the same file).
  • the ability to easily share your files.
  • the ability to allow others to modify / contribute to your project.
  • the ability to manage contributions and decide what contributions get merged into the main version.

What is Git, GitHub, GitHub Pages, and GitHub Desktop?


Image of the git logo

Git

Git is a free and open source distributed version control system. It’s been around for a long time and is used for small and big projects alike. Traditionally Git is command-line based, meaning that you have to interact with it using text-based commands. However, today there are many graphical interfaces based on Git, allowing you to do all the same things you normally would but right at the click of a button.


Image of the GitHub logo

GitHub

GitHub is a web-based hosting service for version control using Git. It allows you to use all the functionality of Git, as well as a lot of other added features. It provides collaboration tools, automation tools, documentation tools, website hosting tools, and many other features. Since it’s web-based, you can access the files from anywhere.


Image of the GitHub Pages logo

GitHub Pages

GitHub Pages is a static site hosting service GitHub provides. It takes in HTML, CSS, and JavaScript files hosted in a GitHub “repository” and publishes a website that anyone can access! Alternatively, you can instead use Markdown files (we’ll talk about those in the first lesson!) to create web pages using Jekyll, a built-in software within GitHub Pages. This workshop website here is hosted by GitHub Pages and created entirely using Markdown files.


Image of the GitHub Desktop logo

GitHub Desktop

GitHub Desktop is a desktop application that lets you sync and edit files from a GitHub repository within your local file system on your PC using a graphical user interface (GUI).

For what kinds of project might I use a Version Control System?

[Optional] Introduction to GitHub

Watch the following short introductory video How GitHub works

View original here.