Comment puis-je annuler git reset --hard HEAD~1 ?

Est-il possible d'annuler les modifications causées par la commande suivante ? Si oui, comment ?

git reset --hard HEAD~1
请先 登录 后评论

2 réponses

Pat Notz

Ce que vous voulez faire, c'est spécifier le sha1 du commit vers lequel vous voulez restaurer. Vous pouvez obtenir le sha1 en examinant le reflog (git reflog) puis en faisant

git reset --hard <sha1 of desired commit>

Mais n'attendez pas trop longtemps... après quelques semaines, git finira par voir ce commit comme non référencé et supprimera tous les blobs.

请先 登录 后评论
sverrejoh

Il est possible de le récupérer si Git n'a pas encore ramassé les ordures.

Obtenez un aperçu des commits suspendus avec fsck :

$ git fsck --lost-found
dangling commit b72e67a9bb3f1fc1b64528bcce031af4f0d6fcbf

Récupérer le commit suspendu avec rebase :

$ git rebase b72e67a9bb3f1fc1b64528bcce031af4f0d6fcbf
请先 登录 后评论