Je suis surpris, je ne pouvais pas trouver la réponse à cette question sur SO.
Peut-on récupérer/restaurer les commits supprimés dans git?
Par exemple, voici ce que j'ai fait:
# Remove the last commit from my local branch
$ git reset --hard HEAD~1
# Force Push the delete
$ git Push --force
Maintenant, y a-t-il un moyen de récupérer le commit qui a été supprimé? Est-ce que git enregistre (enregistre) la suppression en interne?
Pour revenir à ce commit, vous pouvez utiliser le reflog pour regarder son ref.
Les journaux de référence, ou "reflogs", indiquent le moment où les astuces des branches et autres références ont été mises à jour dans le référentiel local.
Exécutez cette commande:
git reflog
Analysez les premières entrées et trouvez le commit qui a été perdu. Gardez une trace de l'identifiant de cette validation (vous pouvez utiliser la première ou la deuxième colonne). Appelons l'identifiant "ID".
Si vous n'avez pas effectué de travail supplémentaire depuis la réinitialisation - hard, vous pouvez effectuer les tâches suivantes:
git reset --hard ID
git Push -f Origin master
Si vous avez effectué un autre travail depuis la réinitialisation, vous pouvez sélectionner à nouveau si vous revenez sur votre branche comme ceci:
git cherry-pick ID
git Push Origin master
Oui, vous pouvez trouver votre commit dans reflog
use:
git reflog
pour afficher tous les commits qui ont été/ont été créés dans votre référentiel - après cela, vous devriez extraire les commits avec la commande checkout
git checkout <your commit-SHA>
ou sélectionnez-le par:
git cherry-pick <your commit-SHA>
Essayez git reflog
, c’est-à-dire les journaux de référence, vous permet de revenir à l’historique de votre référentiel local.