Week 5: Version control with Git & GitHub
Overview
This week, you will learn about the why and how of storing different versions of files using Git, a formal Version Control System — and sharing the resulting repositories on the GitHub website.
Lectures & Learning goals
Some of the things you will learn this week are:
A) Introduction to Version control (Monday)
- Understand why it’s a good idea to use a formal Version Control System for research projects, and learn key Git concepts and terminology.
B) Version control with Git (Monday)
- Learn the basics of creating version control repositories with Git, the most widely used Version Control System.
C) Remote repositories on GitHub (Wednesday)
- Learn how to put your local repositories online at GitHub.
- Learn how to keep local and online (“remote”) repositories synced.
Assignments and exercises
- Ungraded Assignment: Create a GitHub account (Do this before Wednesday’s class)
- Graded Assignment 2: Unix shell and Git (Due 9/27)
Optional self-study material
Optional self-study material on this website: Advanced version control
- Learn how to move and remove tracked files, and how to unstage files.
- Learn how to collaborate with others using Git and GitHub.
- Learn how to undo things and “travel back in time” for your project using Git.
- Learn how to use Git branches to safely make experimental changes.
Allesina and Wilmes (2019) — Chapter 2: “Version Control” (OSU library link )
Buffalo (2015) — Chapter 5: “Git for Scientists” (OSU library link )
For more background on why to use version control, and another perspective on Git basics, I highly recommend Bryan (2017): “Excuse me, do you have a moment to talk about version control?” Note that some of the content assumes you are an R user.
References
Allesina, Stefano, and Madlen Wilmes. 2019. Computing Skills for Biologists: A Toolbox. Princeton University Press. https://doi.org/10.1515/9780691183961.
Bryan, Jennifer. 2017. Excuse Me, Do You Have a Moment to Talk about Version Control? https://doi.org/10.7287/peerj.preprints.3159v2.
Buffalo, Vince. 2015. Bioinformatics Data Skills [Reproducible and Robust Research With Open Source Tools]. First edition. O’Reilly.