Stoppen, atmen, nicht pushen
Die erste Regel von Git-Katastrophen: nicht schlimmer machen.
Snapshot vor Recovery
git tag panic-snapshot
cp -r .git ~/git-backup-$(date +%s)
Haufige Katastrophen und Fixes
Schlechter Reset
git reflog
git reset --hard HEAD@{1}
Schlechter Rebase
git reflog
git reset --hard ORIG_HEAD
Geloschter Branch
git reflog --all
git branch recovered <sha>
Force-Push uber einen Teamkollegen
git push --force-with-lease <their-branch-tip>
Geheimnisse committet
git filter-repo --replace-text passwords.txt
git push --force --all
git push --force --tags
Detached HEAD mit neuen Commits
git checkout main
git branch rescued <sha>
Korruptes Repo
git fsck --full
git unpack-objects < .git/objects/pack/pack-XXX.pack
Reflog-Spickzettel
git reflog
git reflog show feature/x
git log -g
git fsck --lost-found
Wiederholungen vermeiden
--force-with-leaseverwenden.pull.ff = onlysetzen.- Lange Reflog-Ablauf konfigurieren.
- Feature-Branches als Backups pushen.
gitleaksausfuhren.