Dans le processus d'utilisation de Git pour le développement de projets, nous rencontrons souvent des situations où nous devons restaurer une certaine version. Cependant, si vous avez utilisé la commande git reset ou la commande git revert pour effectuer une restauration de version et que vous souhaitez restaurer la version précédente, est-ce toujours possible ? Cet article analysera ce problème en détail pour tout le monde.
Tout d’abord, comprenons les fonctions des deux instructions git reset et git revert.
Commande git reset : réinitialisez le HEAD de la branche actuelle au commit spécifié. Vous pouvez choisir de réinitialiser la zone de préparation et le répertoire de travail au commit spécifié.
Commande git revert : créez un nouveau commit pour annuler le commit précédent. Vous pouvez choisir d'annuler le commit spécifié ou une série de commits pour générer un nouveau commit.
Évidemment, la commande git reset perdra l'enregistrement de soumission précédent Même si git log a été utilisé pour stocker l'historique de soumission, il ne peut pas être restauré à la version précédente. Git revert peut annuler la soumission précédente, mais un nouvel enregistrement de soumission sera généré et l'enregistrement de soumission précédent existe toujours.
Donc si vous avez utilisé la commande git reset, est-il toujours possible de récupérer la version précédente ? La réponse est que c’est possible, mais différentes méthodes doivent être choisies en fonction de différentes situations.
Scénario 1 : Si aucune autre opération n'est effectuée après la réinitialisation (telle que la suppression de fichiers, la création de nouveaux fichiers, etc.), vous pouvez le restaurer via le mécanisme de « référence » de Git.
1. Vérifiez d'abord le pointeur de HEAD avant de réinitialiser :
git reflog
2. Vérifiez la valeur SHA-1 du commit avant de réinitialiser :
git show HEAD@{n}
Parmi eux, n est le nième commit avant de réinitialiser.
3. Réinitialisez le commit avant de réinitialiser :
git reset HEAD@{n}
4 À ce stade, vous avez restauré la version avant de réinitialiser, vous pouvez directement récupérer les fichiers dont vous avez besoin :
git checkout HEAD -- FILENAME
FILENAME est ce que vous devez trouver. fichier de retour.
Scénario 2 : Si vous effectuez d'autres opérations après la réinitialisation (telles que la suppression de fichiers, la création de nouveaux fichiers, etc.), vous pouvez également utiliser le mécanisme de « référence » pour récupérer, mais vous devez à nouveau extraire les soumissions précédentes.
1. Vérifiez la valeur SHA-1 du commit avant de réinitialiser :
git show HEAD@{n}
2. Vérifiez le commit précédent :
git checkout <commit-SHA>
Parmi eux,
3. Récupérez les fichiers dont vous avez besoin :
git checkout HEAD -- FILENAME
Les étapes restantes sont les mêmes que pour le premier scénario.
Il convient de noter que qu'il s'agisse du scénario un ou deux, vous devez le restaurer dès que possible après git reset. Sinon, si d'autres commits sont effectués, vous ne pourrez pas revenir à la version précédente. Par conséquent, avant d’utiliser git reset, vous devez confirmer l’opération avant de continuer.
En bref, git est un système de contrôle de version très puissant. Il existe de nombreuses autres opérations pour traiter les problèmes de version, telles que les branches, les balises, etc. Vous devez choisir la solution appropriée en fonction de la situation spécifique. Dans le même temps, vous devez développer de bonnes habitudes d’utilisation de Git, effectuer des sauvegardes en temps opportun et vous engager à éviter des pertes inutiles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!