intermediate6 h 10 min11 lessons

Git in Practice

The everyday craft of Git on a real team: hairy merges, rebase, clean commit history, stash and cherry-pick, branching models and pull requests, releases, reflog rescue, hooks, and the config that pays for itself.

by DevFox

Start course

What you will cover

  1. Merging and Resolving ConflictsHandle a genuinely hairy merge with a process rather than luck: the merge base, zdiff3 conflict style, modify/delete and rename conflicts, and verifying a merge before you trust it.35 min
  2. Rewriting History with RebaseWhat rebase actually does to your commits, merge versus rebase as a real trade-off, the ours/theirs inversion, rebase --onto, and force-pushing with --force-with-lease.35 min
  3. Interactive Rebase and Clean CommitsTurn a messy branch into commits a reviewer will thank you for. Every todo verb, splitting a commit, the --fixup and --autosquash workflow, and rebase --exec.35 min
  4. Stashing Work in ProgressPut work down safely and pick it up again: push with a message, apply versus pop, the untracked-file trap, partial stashes, what a stash really is, and recovering a dropped one.30 min
  5. Cherry-picking and Moving CommitsCopy a commit onto another branch and live with the duplicate: ranges, -x for backports, conflict handling, patch-id detection, and moving work with format-patch when there is no shared remote.35 min
  6. Branching Models for TeamsGitHub Flow, trunk-based development and Git Flow compared honestly, plus release and hotfix branches, the real cost of long-lived branches, and how to keep one current.35 min
  7. Pull Requests and Code ReviewThe pull request lifecycle end to end, the three merge buttons and what each does to history, reviewing locally, git range-diff, force-pushing under review, CODEOWNERS and forks.35 min
  8. Tags, Releases, and VersioningCut a release that is reproducible a year later. Annotated versus lightweight tags, pushing and never moving tags, git describe, semantic versioning, and changelogs from history.30 min
  9. Recovering Lost Work with the ReflogA rescue manual organised by symptom: bad reset, deleted branch, botched rebase, lost amend, dropped stash — plus git fsck, and the one category of loss that is permanent.30 min
  10. Automating Git with HooksMake the repository catch its own mistakes. Every hook worth knowing, two complete scripts you can paste, core.hooksPath so they travel with a clone, hook managers, and why hooks are not enforcement.35 min
  11. .Gitattributes and Config That Pays for ItselfThe committed half of Git automation: line endings, diff and merge drivers, linguist attributes, export-ignore, plus conditional includes and the settings that remove daily friction.35 min