Introduction
What Git is, distributed vs centralised VCS, installing Git, initial configuration, git init, .gitignore, and the three areas of a Git repository.
Basic Workflow
git add, git commit, git status, git log, git diff, and writing good commit messages with Conventional Commits.
Branches
What branches are, creating and switching between them, deleting branches, HEAD and detached HEAD state, and when to branch.
Merging
Fast-forward vs three-way merges, resolving conflicts step by step, git mergetool, and aborting a merge.
Rebasing
git rebase vs merge, interactive rebase for squashing and editing commits, and the golden rule of rebasing.
Remote Repositories
git clone, managing remotes, git fetch, git pull, git push, tracking branches, and upstream relationships.
Tags and Releases
Lightweight vs annotated tags, creating and pushing tags, semantic versioning, deleting tags, and checking out tags.
Undoing Changes
git restore, git reset (soft/mixed/hard), git revert, git clean, amending commits, and using reflog as a safety net.
Advanced Commands
git stash, git cherry-pick, git bisect for bug hunting, git blame, and git shortlog.
Workflows
GitHub Flow, GitFlow, trunk-based development, and the fork workflow for open source — and how to choose the right one.
Hooks & Automation
What git hooks are, pre-commit, commit-msg, and pre-push hooks, with practical examples and tools like husky and lefthook.
Practice Project
An end-to-end exercise covering initialising a repo, feature branches, simulated PR review, squash-merge, and tagging a release.