Da Anonimo (non verificato) , 29 Aprile 2026

Fermati, respira, non pushare

La prima regola dei disastri Git: non peggiorare la situazione. La maggior parte dei "disastri" sono recuperabili.

Snapshot prima del recupero

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

Disastri comuni e fix

Reset cattivo

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

Rebase cattivo

git reflog
git reset --hard ORIG_HEAD

Branch eliminato

git reflog --all
git branch recovered <sha>

Force-push sopra un compagno

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

Segreti committati

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

Detached HEAD con nuovi commit

git checkout main
git branch rescued <sha>

Repo corrotto

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

Cheat sheet del reflog

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

Evitare ripetizioni

  • Usare --force-with-lease invece di --force.
  • Impostare pull.ff = only.
  • Configurare scadenza reflog lunga.
  • Pushare branch di feature come backup.
  • Eseguire gitleaks.

Praticare il recupero

La migliore preparazione e un'esercitazione di disastro deliberata.