Week 4: 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 (VCS) – and sharing the resulting repositories on the GitHub website.
Lectures & Learning goals
Some of the things you will learn this week:
Version control with Git (Tuesday)
- Understand why it’s a good idea to use a formal Version Control System (VCS) for research projects
- Learn the basics of creating version control repositories with Git, the most widely used VCS
Remote repositories on GitHub (Thursday)
- Learn how to put your local repositories online at GitHub, and how to keep local and online (“remote”) repositories synced
Assignments and exercises
- Ungraded assignment: Create a GitHub account (Do this before Thursday’s class)
- Graded assignment: Unix shell and Git (Due 9/21)
Further resources
Optional self-study content on this site: Branching, collaborating, and undoing
- Learn how to use Git branches to safely make experimental changes.
- Learn how to undo things and “travel back in time” for your project using Git.
Allesina (2019) (OSU library link) – Chapter 2: “Version Control”
Buffalo (2015) (OSU library link) – Chapter 5: “Git for Scientists”
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 contents assumes you are an R user.
References
Allesina, Stefano. 2019. Computing Skills for Biologists: A Toolbox. Princeton, NJ: 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. Beijing: O’Reilly.