Skip to content


Repository files navigation

Version Control via Git and Github

Lesson synopsis (1.5 - 2 hours)

This lesson teaches the concept of version control using git. The lesson begins with a slides describing the motivations for using version control and Github. The first activity is a follow along partner activity which explores git in GitHub only (02-git-in-github). Since the project is never brought locally onto the students computer, the students do not need to install git for this project. The second activity starts with a demo in RStudio which can be followed along if the students have installed git (03-git-in-rstudio). This activity introduces the students to using git on their computers.


Before this lessons, students should:

  • For 02-git-in-github: Obtain a Github account. If you sign up using a student email you get five free private repositories through a student developer pack.
  • For 02-git-in-rstudio: Install Git for use in RStudio. Follow installation instructions from RStudio. Suggested This step should be done at the end of day 1.

Learning Objectives

At the end of this module you should be able to:


  1. Define git vocabulary (commit, fork, pull request, repository, commit message).
  2. Demonstrate ability to navigate through a Github repository main page.
  3. Define the difference between a directory and a repository.
  4. Create a repository on GitHub.
  5. Demonstrate ability to commit changes to text files with a commit message.
  6. Evaluate repository History.
  7. Create a pull request to someone else's repository.


  1. Define git vocabulary (push, fork, local repository, remote repository)
  2. Fork remote repository from Github into RStudio.
  3. Navigate through the basics of using git in RStudio.
  4. Push local repository from RStudio to Github.
  5. Demonstrate the ability to host code from RStudio to Github.


  1. : slides that introduce version control, git, and GitHub.
  2. instructor notes for exercise that uses
  3. 02-git-in-github-slides.Rmd and 02-git-in-github-slides.html: git in Github activity.
  4. 03-git-in-rstudio-slides.html and 03-git-in-rstudio-slides.html: git in RStudio activity.
  5. - incomplete, a file that can be used as a reference for self learning git.

People and credits

This lesson was first created at the 1. Reproducible Science Curriculum Hackathon. The corresponding author is Ciera Martinez (@iamciera). See the commit log for other contributors.

Please post feedback and issues with the lesson on the repository's issue tracker. For instructor questions about teaching this lesson, you can also contact the corresponding author directly.