Learning resources: Version control with Git

How to Use these Resources

The resources below offer tutorials and references for learning Git and the mechanics of online repository hosting sites like Github or Bitbucket, which are useful for collaboration.  Some of these are generic resources written from the perspective of industry practitioners and professional software developers, but some target the specific use-case of software development for computational scientistsce and engineering.. Most of these resources presume at least some basic familiarity with a Linux/Unix command line.

Git is somewhat complex until one gets used to it. As with any complex topic, no single resource is likely to provide all the instruction someone needs.  We recommend finding a handful that speak to you and using them in tandem to build a solid foundation.

 

Videos

Git Explained with SciFi --- an amusing video (~10 mins) that gives a good conceptual introduction to Git using science fiction tropes. A nice conceptual entry-point to Git.

Introduction to Version Control with Git -- a ~1-hour hands-on introduction to Git geared at computational scientists.  Part of the Virtual Tutorials series from ARCHER (the UK National Supercomputing Service)

Mastering Git Basics -- recording of a ~1-hour talk given by Tom Preston-Werner (the founder of Github) that walks you through the essentials of Git

Pro Git Video Series -- a series of four short videos by the authors of "Pro Git" (see Books below) offering a conceptual overview of version control and walking through basic Git usage.

Intro to Git --- LinkedIn Learning video (~1.5 hours).  Free with active Princeton NetID.

Git Tutorial for Beginners -- ~30 minute YouTube video that walks through a conceptual introduction to Git along with concrete command-line examples

Git Crash Course --- introductory video (~30 mins) about Git and Github

 

Self-paced online courses

Git Immersion -- one of the best online tutorials for learning Git.  Broken into a sequence of over 50 self-paced "labs" (web pages, not videos) that teach Git in modular chunks, with exercises.

Learn Git Branching -- an exceptionally good browser-based sandbox that lets you learn Git branching and merging visually (no need to download anything to your own computer), with a sequence of paced examples and exercises along with solutions.  Highly recommended.

Git and Github (Step by Step for Beginners) -- a free online course for those new to Git.  From udemy.com.

Ultimate Git 5-Day Challenge -- another free online course from udemy.com

Git Started with Github -- another free online course from udemy.com

 

Web pages / written online tutorials

Git Ready -- an online archive of bite-sized tutorials on different Git topics (beginner to advanced).  Also contains a list of other useful online resources for learning Git.

Think Like a Git -- a conversational yet highly detailed introduction to Git that gives both concrete examples and important conceptual insight into what Git is all about that is hard to find in other places

Git Handbook -- a 10-minute primer giving an overview of version-control concepts and Git commands.  Not a complete resource, but an excellent entry point. Published by Github.

Git Cheatsheets -- list of common Git commands as reference.  Available in numerous languages.  Also offers guides for migrating to Git from older centralized version-control systems like Subversion (SVN).  Also published by Github.

Getting Git Right -- a comprehensive series of beginner- and intermediate-level online tutorials (with excellent diagrams). From Atlassian, the makers of Bitbucket.

 

Books

Pro Git -- the de facto standard book on Git.  Introduces basics to beginners, but also has a comprehensive treatment of Git internals as a reference for more advanced users. Online and PDF versions of the book are free under a Creative Commons license.  The page also has links to purchase a print version.

Git Magic -- a comprehensive example-driven tutorial and reference written by computer science students at Stanford.  Available as an online tutorial, a PDF book, and a repository on Github.  Translated into multiple languages.