Par Anonyme (non vérifié) , 29 avril 2026

Arrêtez, respirez, ne pushez pas

La première règle des désastres Git : ne l'aggravez pas. La plupart des "désastres" sont récupérables car Git est conservateur.

Snapshot avant récupération

git tag panic-snapshot
cp -r .git ~/git-backup-$(date +%s)

Désastres courants et corrections

Mauvais reset

git reflog
git reset --hard HEAD@{1}

Mauvais rebase

git reflog
git reset --hard ORIG_HEAD

Branche supprimée

git reflog --all
git branch recovered <sha>

Force-push sur un coéquipier

git push --force-with-lease <their-branch-tip>

Secrets commités

git filter-repo --replace-text passwords.txt
git push --force --all
git push --force --tags

Detached HEAD avec nouveaux commits

git checkout main
git branch rescued <sha>

Repo corrompu

git fsck --full
git unpack-objects < .git/objects/pack/pack-XXX.pack

Cheat sheet du reflog

git reflog
git reflog show feature/x
git log -g
git fsck --lost-found

Éviter les répétitions

  • Utilisez --force-with-lease au lieu de --force.
  • Configurez pull.ff = only.
  • Configurez une longue expiration du reflog.
  • Pushez les branches feature en backup.
  • Lancez gitleaks en pre-commit et CI.

Pratiquer la récupération

La meilleure préparation est un exercice délibéré de désastre.