Advanced Git Internals & Distributed Workflows

Object Storage, DAGs, Interactive Rebase & Bisecting

6 modules, 28 lessons: How Git Thinks; Everyday Git; Branches, HEAD And History; Remotes; Working With Other People; Rewriting History, Tags And Workflows.

Beginner · 2 hours · 28 lessons · 123 labs

Who it is for

Beginner level.

For anyone who keeps work in Git, or soon will: developers, testers, technical writers and operations staff who want to know what each command really does.

What you don't need yet:

What helps:

Before you start:

Take first:

Take next:

Learning paths:

Nobody needs to know everything before they start. Each course builds on the one before, so a learning path takes you there step by step.

Labs

123 labs, 101 of them graded: you write the code, it runs, and graded labs check the result. The outline lists each lesson's labs.

What is free

Start free: First 4 lessons free with an account. Pro: Every course, lab, handbook, practice exam and certificate.

Course outline

How Git Thinks

  1. Why Version Control, And Why Git Won (5 labs): You can say what a version control system stores, why Git's distributed copy makes history a local question, and what Git's integrity claim rests on.
  2. Installing Git, And Telling It Who You Are (6 labs): You will be able to install git, set the identity it writes into commits, and say which config file an answer came from.
  3. A Repository Is A Folder With A Memory (7 labs): You can turn any directory into a repository with git init, name what lives inside the hidden .git directory, and prove that the repository is that directory and nothing else.
  4. What A Commit Really Is (6 labs): You will be able to open a commit object and name every field inside it.
  5. The Three Areas: Working Tree, Index, Repository (6 labs): You will be able to read git status as a report on three named areas and say which one every line describes.

Everyday Git

  1. Staging Deliberately: status, add, add --patch (8 labs): You will be able to turn a messy working tree into commits that each say one thing.
  2. Committing, And What A Good Message Says (7 labs): You will be able to commit in every form git offers and write a subject and body that survive the views git puts them in.
  3. Conventional Commits (4 labs): You will be able to write a conventional commit message and make git reject one that is not.
  4. Reading History: log, show And diff (7 labs): You will be able to interrogate a repository with log, show and diff, and pick the flag that answers the question you actually have.
  5. Ignoring Files, And The Tracked File Trap (6 labs): You will be able to write ignore patterns that work, and untrack a file you had already committed by mistake.

Branches, HEAD And History

  1. A Branch Is A Moving Pointer (6 labs): You will be able to create, rename and delete branches, and say exactly what each one is on disk.
  2. HEAD, And Why Detached HEAD Is Not An Error (6 labs): You will be able to say what HEAD points at, detach it deliberately, and keep work made while detached.
  3. Merging: Fast Forward Or A Merge Commit (6 labs): You will be able to predict whether a merge fast forwards or makes a merge commit, and say why.
  4. Rebase: The Same Work, A Different History (5 labs): You will be able to rebase a branch, show that the commits are copies, and say when not to do it.
  5. Undoing: restore, reset, revert And stash (7 labs): You will be able to choose the right undo command by naming which area or pointer you want to change.

Remotes

  1. What A Remote Actually Is (6 labs): You will be able to say what a remote is, attach one to a repository, and read back everything git knows about it.
  2. Clone, Forks, Push, And The Upstream Branch (2 labs): The learner can clone a repository, push changes to a remote, and explain the difference between a clone and a fork.
  3. Fetch Is Not Pull (3 labs): The learner can explain that fetch downloads commits without changing the working tree, while pull fetches and then merges.

Working With Other People

  1. The Pull Request, And Branch Naming (3 labs): You will be able to prepare, name, and open a pull request.
  2. Reviewing Code Well (1 lab): You will be able to review code constructively and manage repository collaborators.
  3. Why Conflicts Happen (1 lab): You will understand how Git detects a conflict by comparing two branches against their merge base.
  4. Resolving A Conflict, Line By Line (2 labs): You will be able to read conflict markers, resolve the file, and complete the merge.

Rewriting History, Tags And Workflows

  1. Amend, And The One Hard Rule (3 labs): Change the last commit and understand why you must never rewrite history that others have pulled.
  2. Interactive Rebase: Squash, Reorder, Reword (3 labs): Clean up a local branch by squashing, rewording, and reordering commits before sharing.
  3. Cherry Picking, Reflog, And Getting Work Back (2 labs): Copy individual commits to a different branch and recover lost commits using the reflog.
  4. Investigating History: blame, bisect And worktree (3 labs): Find which commit introduced a change using blame and bisect, and check out multiple branches at once with worktree.
  5. Tags And Releases (2 labs): Mark specific commits as releases using tags, push them to a remote, and associate them with GitHub Releases.
  6. Trunk Based Development Versus Git Flow: Compare branching strategies and understand when to choose continuous integration over explicit versioned releases.

Certification courses