Amend & Fixup
Correct the tip of your branch with git commit --amend, which writes a new commit and moves the ref while the original waits in the reflog, then queue a fix for a buried commit by writing a fixup! marker to fold in later.
Rebase
Rebuild your branch's commits onto a new base, watching each become a new object with the same diff but a fresh parent and hash, fold a queued fixup! marker into its target with --autosquash, and see why ours and theirs swap when a replay hits a conflict.
Reset, Revert & Clean
Rewind a branch with git reset and pick with --soft, --mixed, or --hard how far the staging area and working tree follow; append a push-safe inverse commit with git revert (choosing a mainline with -m on a merge); and wipe untracked files with git clean -fd, the only one of the three the reflog cannot undo.
Cherry-pick
Copy the change from any commit onto your current branch as a new object with its own hash while the original stays put, select a merge's mainline with -m, and run a range through the sequencer that halts on a conflict with four ways out.
Bisect
Pinpoint the commit that broke a test by halving a 1024-commit range in about ten classifications, read the .git/BISECT_* state the search parks on disk without moving your branch, and automate the whole loop with git bisect run (exit 0 good, 125 skip, non-zero bad).