Version Control with Git

12 September 2019, Bandwidth Barn, Woodstock, Cape Town


This course will give you a solid understanding of the principles and practices of applying Version Control with Git. You’ll learn to

  • setup Git on your computer and create a repository;
  • perform everyday Version Control operations (checking in, checking out, diffing, branching, merging);
  • create a remote repository on GitHub and synchronise it with your local repository; and
  • how to use Git as an effective collaboration tool.


After this course you’ll be familiar with how Git works and primed to start using it on your own projects.

Who should attend?

Version control is an indispensable tool that anybody who creates content on a computer (for example, source code, documents, presentations or web sites) should be using.

Course Content

  • Why Version Control?
    • Version control systems
    • Git: A short history
  • Setting Up Git
    • git config — creating an identity
  • Creating a Repository
    • git init
    • Quick tour of .git folder
  • Committing to the Repository
    • git add — adding files to the staging area
    • git commit — moving files from the staging area to the repository
    • Writing a good commit message
    • git status
    • Ignoring files with .gitignore
  • Tracking Changes
    • git log — browse commit messages
    • git diff
  • Retrieving from the Repository
    • git checkout
    • Referencing commit using a hash
    • What’s a “detached HEAD”?
  • Branches
    • Creating a branch
    • Switching between branches
    • git log --graph — visualising branches
    • Merging a branch
    • Managing merge conflicts
    • Deleting a branch
  • Git as a Tool for Collaboration
  • Remote Repository
    • What’s the deal with remotes?
    • Using GitHub, GitLab or BitBucket
    • git clone — cloning a Remote Repository
    • Clone versus fork?
    • git remote — adding and removing a remote
    • git pull
    • git fetch
    • git push
  • UIs

Why should I learn to use Git?

  1. Using Git will mean that you have a complete history of revisions (and the ability to revert to older versions if something breaks or you change your mind).
  2. Free backups.
  3. Enables effective collaboration. Pull requests allow developers to request to have their branches merged into the master branch while allowing project leads to keep track of new changes.
  4. Branches allow developers to work on something new (and see exactly how it’ll work/look within the existing project) while ensuring that the master branch always contains production-quality work.
  5. “This project is huge! I don’t know where to start!” Git will help train your brain to break down a big project into smaller bite-sized, committable, chunks. This will help you devise a better, less overwhelming game plan.


  1. Install Git.
  2. Install the Putty SSH client (only Windows users).
  3. Create an account on GitHub.
  4. Watch Git & GitHub Crash Course For Beginners. Don’t worry about the details. This is just to get a flavour of what Git is about.
  5. Read the paper “Excuse me, do you have a moment to talk about version control?” by Jennifer Bryan.
    • Why is version control important, and how does Git manage version control?
    • Why is Git particularly useful for developers working with R?
    • What is one of the biggest problems with using Git and GitHub for collaboration?

Interactive course material

Our training emphasises practical skills. So, although you’ll be learning concepts and theory, you’ll see how everything is applied in the real world as we work through examples and exercises based on real datasets.

We like questions!

Having a firm understanding of the course content will result in you being able to confidently apply your new skills thereafter. So, if at any point you’re unsure of something, just ask!

Purchase a ticket

Contact us at if you have any questions.