This post is a fork of the ContentMine meta wiki page Good guides to Git and Git hosts. I wrote that wiki page while under contract with ContentMine. In accordance with that wiki’s license, this post is published under the CC BY-SA 4.0 license. It is intended to remain a work in progress. I am sure there is room for improvement, so feel free to submit pull requests!

Within each section below, the links are in approximate order of increasing sophistication.

Overall guides

  • Brief: Roger Dudler: git - the simple guide
  • In-depth: Scott Chacon & Ben Straub: Pro Git, 2nd ed.
  • In-depth, quirky: Sam Livingston-Gray: Think Like (a) Git
  • Video demo using tinker toys (first half is superb): Michael Schwern: Git for Ages 4 And Up
  • In-depth: Git typically ships with built-in documentation, divided into one “page” (which can be quite long, more like a web page than a printed page) per Git command, with additional pages for more general guidance. To list the available pages, type man git into your shell prompt (don’t press Enter) and then press Tab twice. (The computer may ask if you really want to list them all; press y to do so.) To view a page, enter man <page> where <page> is the name of the page you want to view. E.g. to view the “gittutorial” page, type man gittutorial at your shell prompt and press Enter.

Salutory warnings

Commits and commit messages

Commit graph visualisation interfaces

  • Paul Mackerras et al.: gitk (FLOSS; may be bundled with Git, depending on platform)
  • Jonas Fonseca et al.: tig (FLOSS; may be bundled with Git, depending on platform)

Handling pull requests (squashing, etc)

Workflows

Merging

Submodules

Subtrees

Resetting (one way to rewind or undo)

Usability

History of Git itself

Security

Ethical considerations

Humour

FLOSS third-party tools

  • Manage multiple repositories simultaneously with mr