Maison > outils de développement > git > Peut-il être récupéré après la restauration de git vers une version spécifiée ?

Peut-il être récupéré après la restauration de git vers une version spécifiée ?

王林
Libérer: 2023-05-20 10:50:37
original
2770 Les gens l'ont consulté

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
Copier après la connexion

2. Vérifiez la valeur SHA-1 du commit avant de réinitialiser :

git show HEAD@{n}
Copier après la connexion
Copier après la connexion

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}
Copier après la connexion

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
Copier après la connexion
Copier après la connexion

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}
Copier après la connexion
Copier après la connexion

2. Vérifiez le commit précédent :

git checkout <commit-SHA>
Copier après la connexion

Parmi eux, À ce stade, vous êtes revenu à la version précédente.

3. Récupérez les fichiers dont vous avez besoin :

git checkout HEAD -- FILENAME
Copier après la connexion
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal