Lorsque vous utilisez Git pour le contrôle de version du code, il est inévitable que vous deviez annuler les soumissions précédentes. Git propose plusieurs méthodes pour annuler les modifications de code soumises, dont la commande revert. La commande revert vous permet d'annuler une ou plusieurs validations précédentes pour ramener la base de code locale à un état spécifié.
Cet article vous présentera comment utiliser la commande revert de Git pour annuler les commits précédents, ainsi que les solutions aux problèmes courants.
1. Différents types d'opérations d'annulation
Il existe deux opérations principales de restauration de version dans Git : réinitialiser et restaurer.
L'opération de réinitialisation est utilisée pour annuler une validation locale et pointer le pointeur HEAD vers la version de validation souhaitée (Hard Reset), ou déplacer le pointeur HEAD vers le chemin de la version souhaitée (Soft Reset).
Et la commande revert est utilisée pour annuler le commit précédent et créer un nouveau commit pour annuler les modifications. Cette méthode est particulièrement utile pour annuler des validations qui ont été fusionnées dans d’autres branches.
2. Utilisez Revert pour annuler les soumissions précédentes
En utilisant la commande Revert, vous pouvez annuler les soumissions précédentes et créer de nouvelles soumissions pour annuler les modifications.
Cette commande peut utiliser la syntaxe suivante :
$ git revert commit_id
Où, commit_id est l'ID de la soumission à révoquer. Il doit s'agir d'une valeur exacte (peut être trouvée dans la commande git log).
Cette commande créera un nouveau commit, annulera les modifications apportées par le commit spécifié et fusionnera le nouveau commit sur la branche cible afin que les autres puissent comprendre où l'annulation a été effectuée.
Par exemple, si nous ajoutons une ligne à un fichier et validons les modifications, puis que nous souhaitons annuler les modifications, nous pouvons entrer la commande suivante :
$ git revert a1b2c3d4
Cela annulera la validation avec l'ID a1b2c3d4 et créera une nouvelle validation pour revenir en arrière. les changements.
3. Problèmes courants et solutions de la commande revert
Lors de l'utilisation de la commande revert, certains problèmes courants doivent être pris en compte.
Si la commande revert rencontre un conflit de fusion, Git vous invitera à effectuer une fusion manuelle. Si vous devez fusionner manuellement, vous pouvez utiliser git merge pour le faire.
Si vous souhaitez annuler les modifications partielles d'un commit (au lieu du commit complet), vous devez créer un commit temporaire à l'aide des commandes git add et git commit. Pour ce faire, créez d'abord une nouvelle branche et déplacez-la vers l'emplacement du commit que vous souhaitez annuler :
$ git checkout -b temp_branch commit_id
Utilisez ensuite la commande suivante pour afficher les modifications :
$ git diff HEAD^ HEAD
Utilisez la commande suivante pour annuler uniquement les modifications spécifiées :
$ git checkout HEAD^ -- path/to/file $ git checkout -p HEAD@{1} path/to/file
Enfin, utilisez git. Les commandes add et git commit créent un nouveau commit et le fusionnent dans la branche cible :
$ git checkout origin/destination $ git merge temp_branch
Si vous utilisez accidentellement la commande revert pour annuler le mauvais commit, vous pouvez utiliser le git reflog pour trouver l’historique des validations précédentes et utilisez la commande git reset pour annuler ou même annuler complètement les modifications.
$ git reflog $ git reset HEAD@{1}
Ou utilisez la commande suivante pour revenir au commit précédent :
$ git reset --hard HEAD^
Dans cet article, nous expliquons comment utiliser la commande revert de Git pour annuler les commits précédents et annuler les modifications, ainsi que certains problèmes courants et leurs solutions. Ces opérations peuvent vous aider à mieux gérer votre base de code, améliorant ainsi votre efficacité au travail.
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!