GitFurther Learning Resources

Further Learning Resources

Git rewards deliberate study — once the mental model clicks, the commands stop feeling arbitrary. This page collects the best free and paid resources, organised by how you like to learn: reading, doing, or watching. It ends with a suggested path from absolute beginner to confident power user.

Official Documentation

Start here. The official material is authoritative, free, and surprisingly readable. The Pro Git book in particular is the single best resource for genuinely understanding Git rather than just memorising commands.

  • git-scm.com — the official Git website, with downloads, reference docs, and the full Pro Git book online.

  • git-scm.com/book — Pro Git (2nd edition) by Scott Chacon and Ben Straub. Free in full, including the chapter on Git internals. The definitive text.

  • git-scm.com/docs — the complete reference manual for every command and option (the same content as git help <command>).

  • The built-in manual: run git help <command> or git <command> --help to open the offline man page for any command.

Interactive and Hands-On Learning

Git concepts like branching, merging, and rebasing make far more sense when you can see the commit graph move. These tools let you experiment in a sandbox with zero risk to a real repository.

  • learngitbranching.js.org — Learn Git Branching. A visual, gamified sandbox that animates the commit graph as you run real commands. The best way to internalise branching and rebasing.

  • skills.github.com — GitHub Skills. Free guided courses run as interactive GitHub repositories, covering everything from your first commit to advanced workflows.

  • gitimmersion.com — Git Immersion. A guided tour of hands-on labs you work through in your own terminal.

  • git-school.github.io/visualizing-git — Visualizing Git. Type commands and watch a live diagram of commits, branches, and HEAD.

  • ohmygit.org — Oh My Git! An open-source game that teaches Git through playable levels.

Books
  • Pro Git (2nd ed.) — Scott Chacon & Ben Straub. The standard reference; free online, comprehensive, and covers internals.

  • Version Control with Git (3rd ed.) — Prem Kumar Ponuthorai & Jon Loeliger (O’Reilly). A deeper, more systematic treatment of how Git works.

  • Git Pocket Guide — Richard Silverman (O’Reilly). A compact task-oriented reference for quick lookups.

Cheat Sheets and Quick References
  • education.github.com/git-cheat-sheet-education.pdf — GitHub’s official one-page printable cheat sheet.

  • about.gitlab.com/images/press/git-cheat-sheet.pdf — GitLab’s cheat sheet, organised by workflow.

  • ndpsoftware.com/git-cheatsheet.html — an interactive cheat sheet that shows which commands move data between the working tree, index, local repo, and remote.

  • This site’s own Git Command Cheatsheet page — a dense, categorised command reference.

Video Courses and Channels
  • freeCodeCamp “Git and GitHub for Beginners” on YouTube — a free, full-length crash course.

  • The Net Ninja “Git & GitHub Tutorial” playlist on YouTube — short, focused, beginner-friendly lessons.

  • Fireship “Git Explained in 100 Seconds” and “13 Advanced Git Tips” — fast, high-density refreshers.

  • Udemy / Coursera — paid structured courses (e.g. “The Git & GitHub Bootcamp” by Colt Steele) if you prefer a guided syllabus with exercises.

Practice Platforms
  • Contribute to an open-source project on GitHub — nothing teaches branching, PRs, and conflict resolution like real collaboration. Look for repos tagged good first issue.

  • Create a throwaway repo and deliberately break it — run git reset --hard, recover with reflog, force a merge conflict, then resolve it. Mistakes in a sandbox are free.

  • exercism.org and similar platforms use Git-based submission workflows that build everyday fluency.

Communities
  • stackoverflow.com (the git tag) — the largest archive of solved Git problems; chances are your exact issue has been answered.

  • reddit.com/r/git — community discussion, workflow advice, and troubleshooting.

  • reddit.com/r/github — GitHub-specific questions about PRs, Actions, and hosting.

  • The official Git mailing list (git@vger.kernel.org) — where Git itself is developed, for the deeply curious.

Resources by Category

Resource

Type

Cost

Best For

Pro Git book (git-scm.com/book)

Book / docs

Free

Deep understanding, including internals

Learn Git Branching

Interactive

Free

Visualising branches, merge, and rebase

GitHub Skills

Interactive course

Free

Guided, GitHub-centric workflows

Official reference (git-scm.com/docs)

Reference

Free

Looking up exact flags and behaviour

freeCodeCamp Git course

Video

Free

Beginners who learn by watching

The Git & GitHub Bootcamp (Udemy)

Video course

Paid

Structured syllabus with exercises

GitHub cheat sheet (PDF)

Cheat sheet

Free

Printable desk reference

Stack Overflow (git tag)

Community

Free

Solving a specific error fast

Oh My Git!

Game

Free

Playful, low-pressure practice

Version Control with Git (O’Reilly)

Book

Paid

Systematic, in-depth study

Tools Worth Exploring Next

Once the command line feels comfortable, these tools make day-to-day Git faster and clearer. Learn the CLI first, though — GUIs hide the model you need to understand.

  • lazygit — a fast terminal UI for staging, committing, branching, and rebasing without leaving the keyboard.

  • tig — a text-mode interface for browsing history, diffs, and blame.

  • gitk and git gui — the lightweight GUIs that ship with Git itself.

  • GitKraken, Sourcetree, Fork — graphical clients that visualise complex histories well.

  • git-delta — a syntax-highlighting pager that makes git diff and git log -p dramatically more readable.

  • GitHub CLI (gh) — manage pull requests, issues, and Actions from the terminal.

A Suggested Learning Path

If you are not sure where to start, follow this progression. Each step builds on the previous one, moving from everyday survival skills to the deeper model that lets you reason about any situation.

  1. Install Git and configure your name and email. Make your first repo, commit, and push to GitHub. (GitHub Skills “Introduction to GitHub”.)

  2. Master the core loop: status, add, commit, push, pull. Understand the three areas — working tree, staging area, and repository.

  3. Learn branching and merging hands-on with Learn Git Branching until the commit graph feels intuitive.

  4. Practise collaboration: forks, pull requests, code review, and resolving merge conflicts on a real or sandbox project.

  5. Read the first few chapters of Pro Git to solidify the concepts behind the commands you have been using.

  6. Learn the recovery toolkit: reflog, reset (soft/mixed/hard), revert, and stash. Practise breaking and fixing a throwaway repo.

  7. Get comfortable with rebase (interactive squashing, rewording, reordering) and cherry-pick for clean history.

  8. Read the Git Internals chapter of Pro Git — objects, refs, and the SHA model. This is what separates users who memorise from users who understand.

  9. Explore advanced tooling: bisect, worktree, submodules, hooks, and a faster client like lazygit.

Understand the model, not just the commands
The biggest leap in Git proficiency comes from understanding that commits are immutable snapshots identified by a hash, and branches are just movable pointers. Once that clicks, commands like rebase, reset, and cherry-pick stop being magic incantations and become obvious consequences of moving pointers around. The Git Internals chapter of Pro Git is the fastest route to that insight.
Tip
Learn by deliberately breaking things. Spin up a scratch repository, commit some junk, then practise recovering from `reset --hard`, aborting merges, and resolving conflicts. Confidence comes from having already made the mistake somewhere it did not matter.
Tip
Bookmark the official reference at `git-scm.com/docs` and keep one cheat sheet within reach. Even experienced developers look up flags constantly — memorising every option is not the goal; knowing where to find it is.