You can branch, merge and survive a conflict. Now learn the operations that edit history itself — rebase, cherry-pick, revert, reflog and bisect — so a messy branch becomes clean, a lost commit comes back, and a regression is located in six commands instead of an afternoon.
Where This Trail Picks Up
Two trails brought you here. The first made the terminal ordinary: init, add, commit, log, push. The second made a team survivable: branches, merges, conflicts, stash, blame, Pull Requests.
Both of those treated history as something that happens to you. You added commits to the end of it and read it afterwards.
This trail treats history as something you operate on. Commits can be reordered, collapsed, reworded, moved between branches, undone, and — when it all goes sideways — recovered from a journal Git keeps whether you asked it to or not. These are the commands developers use daily and are quietly astonished that testers know.
There is one QA superpower waiting at the end of it. git bisect turns "this worked last month and doesn't now" from a guessing game into a binary search that a script can run for you while you get coffee. Nothing else in this trail changes a tester's day as much.
What You'll Learn
Eight modules, four lessons each:
- Rebasing vs. Merging — the two ways to bring a branch up to date, what each does to the graph, and the golden rule that keeps rebase from wrecking a shared branch.
- Interactive Rebase & History Cleanup —
git rebase -iand the todo list:squash,fixup,reword,edit,dropand reordering, so a branch arrives at review readable. - Cherry-Picking — moving one specific fix without dragging a whole branch behind it, and putting a hotfix on a test environment in a hurry.
- Undo Mechanics —
git revertfor what is already published,reset --soft/--mixed/--hardfor what is not, and wheregit restorefits. - Disaster Recovery with Reflog — the journal of everywhere
HEADhas been, and how it brings back a "deleted" branch or a commit you rebased into oblivion. - Binary-Search Debugging —
git bisectby hand, thengit bisect runwith a test script doing the deciding. - Clean Repositories, Ignoring & Submodules —
.gitignore,.gitkeep,git clean -fd, and what a submodule is when the automation lives in a repo of its own. - Git Hooks & Automation for QA —
pre-commitandpre-pushhooks that run linters and tests before anything leaves your machine, and why CI is still the real gate.
Every lesson ends with a quiz worth 12 XP. Finish a module and its circular badge is yours; finish all eight and the History Surgeon square badge is yours too.
Who Is This For?
QA engineers — manual or automation — who have finished Git Foundations for QA and Git Teamwork for QA, or who branch and merge comfortably but have never run rebase -i, have never recovered anything with reflog, and would not know where to start with a "it broke somewhere in the last 200 commits" ticket.
No programming is required. Module 6 and Module 8 use a shell script of about five lines, and both are given to you in full.
How to Get the Most Out of It
Every command here is practised in a scratch repository, not on your team's. Make one, generate twenty junk commits, and then break it deliberately: squash the wrong things, hard-reset a branch you cared about, delete it, and bring it back with the reflog. The confidence this trail is trying to give you comes from having destroyed something and recovered it while nothing was at stake.
Interactive challenges for these modules are coming to the platform later. The lessons are written so nothing depends on them.
By the end, "the history is a mess and I don't know how it got that way" is a solvable problem rather than a fact of life.