Maison  >  Article  >  outils de développement  >  Comment annuler la modification d’un fichier dans git ? Comment annuler une soumission ?

Comment annuler la modification d’un fichier dans git ? Comment annuler une soumission ?

PHPz
PHPzoriginal
2023-04-03 09:21:483977parcourir

En tant que développeur, utiliser Git est essentiel. Dans Git, nous rencontrons souvent des situations où nous devons annuler des modifications de fichiers ou annuler des validations. Bien que vous puissiez annuler les modifications de fichier en modifiant manuellement le fichier ou en utilisant la ligne de commande, Git nous propose des moyens très pratiques pour gérer ces situations.

Cet article présentera en détail comment utiliser Git pour annuler les modifications de fichiers et comment annuler les commits.

Git Annuler les modifications de fichiers

Situation 1 : Le fichier n'est pas ajouté à la zone de transit

Si vous apportez des modifications à un fichier mais ne l'avez pas ajouté à la zone de transit Git, il est très simple d'annuler les modifications. Vous pouvez utiliser la commande suivante pour annuler les modifications apportées à un fichier :

git checkout -- <file>

Cette commande restaurera le fichier à son état le plus récemment soumis. Par exemple, si vous modifiez un fichier nommé test.txt et que vous y avez apporté des modifications, vous pouvez utiliser la commande suivante pour annuler les modifications : test.txt 的文件,并且已经对其进行了修改,那么可以使用以下命令来取消修改:

git checkout -- test.txt

这样就可以将 test.txt 文件恢复到最近一次提交时的状态。

情况二:文件已添加到暂存区

如果你已经将文件添加到了 Git 的暂存区,那么取消修改要稍微麻烦一些。你需要使用以下两个命令:

git reset HEAD 
git checkout -- <file>

第一个命令会将文件从 Git 的暂存区移除,第二个命令则是将文件恢复到最近一次提交的状态。例如,如果你已经将 test.txt 文件添加到了 Git 的暂存区,并对其进行了修改,那么可以使用以下命令来取消修改:

git reset HEAD test.txt
git checkout -- test.txt

这两条命令的顺序非常重要。如果先使用 git checkout -- test.txt 命令,那么 Git 会将文件恢复到最近一次提交的状态,忽略你之前在暂存区所做出的修改。

情况三:文件已提交

如果你已经将一个文件提交到了 Git,那么撤销修改就需要用到 git revert 命令了。这个命令会创建一个新的提交,该提交会取消之前的提交。例如,如果你在 master 分支上提交了一个名为 test.txt 的文件,并对其进行了修改,那么可以使用以下命令来撤销该次提交:

git revert HEAD

这条命令会打开一个编辑器,让你输入关于这个提交的撤销信息。如果你想直接提交,可以使用以下命令:

git revert --no-edit HEAD

这样就会直接提交撤销。

撤销提交

有时候,你会意识到你提交的代码存在问题,或者你不想将其添加到版本控制中。在这种情况下,你需要撤销提交。

情况一:还未推送至远程仓库

如果你在本地提交了代码,但还未将其推送至远程仓库,那么可以使用以下命令来撤销提交:

git reset HEAD~1

这条命令会将最近的一次提交撤销,并将代码恢复到上一次提交的状态。

情况二:已经推送至远程仓库

如果你已经将代码推送至远程仓库,那么可以使用以下命令来撤销提交:

git revert <commit_id>

其中,<commit_id>rrreee

Cela remplacera test Le Le fichier .txt est restauré à son état de validation le plus récent.

Situation 2 : Le fichier a été ajouté à la zone de transit

Si vous avez ajouté le fichier à la zone de transit Git, il est un peu plus gênant d'annuler la modification. Vous devez utiliser les deux commandes suivantes : 🎜rrreee🎜La première commande supprimera le fichier de la zone de transit Git et la deuxième commande restaurera le fichier à l'état de validation le plus récent. Par exemple, si vous avez ajouté le fichier test.txt à la zone de staging Git et que vous l'avez modifié, vous pouvez utiliser la commande suivante pour annuler la modification : 🎜rrreee🎜L'ordre de ces deux commandes Très important . Si vous utilisez d'abord la commande git checkout -- test.txt, Git restaurera le fichier à l'état le plus récemment soumis, en ignorant les modifications que vous avez apportées dans la zone de préparation. 🎜🎜Situation 3 : Le fichier a été soumis🎜🎜Si vous avez soumis un fichier à Git, vous devez alors utiliser la commande git revert pour annuler les modifications. Cette commande crée un nouveau commit qui annule le commit précédent. Par exemple, si vous avez soumis un fichier nommé test.txt sur la branche master et que vous l'avez modifié, vous pouvez utiliser la commande suivante pour annuler la soumission :🎜rrreee🎜Cette commande ouvrira un éditeur qui vous permettra de saisir des informations de rétractation sur ce commit. Si vous souhaitez soumettre directement, vous pouvez utiliser la commande suivante : 🎜rrreee🎜Cela soumettra directement la révocation. 🎜🎜Annuler la validation🎜🎜Parfois, vous réalisez qu'il y a un problème avec le code que vous avez validé ou que vous ne souhaitez pas l'ajouter au contrôle de version. Dans ce cas, vous devez annuler le commit. 🎜🎜Situation 1 : Pas encore poussé vers le référentiel distant🎜🎜Si vous avez soumis le code localement mais ne l'avez pas poussé vers le référentiel distant, vous pouvez utiliser la commande suivante pour annuler la soumission : 🎜rrreee🎜Cette commande supprimera le Latest Annuler une validation et restaurer le code à l'état de la dernière validation. 🎜🎜Scénario 2 : Déjà poussé vers le référentiel distant🎜🎜Si vous avez poussé le code vers le référentiel distant, vous pouvez utiliser la commande suivante pour annuler le commit : 🎜rrreee🎜Parmi eux, <commit_id> code> est ce que vous voulez. L'identifiant du commit à révoquer. Cette commande crée un nouveau commit et annule le commit spécifié qu'il contient. 🎜🎜Conclusion🎜🎜Git fournit un moyen très pratique d'annuler les modifications de fichiers et d'annuler les validations. Vous pouvez facilement gérer ces situations avec les commandes décrites dans cet article. Bien entendu, nous devons également être très prudents lors de l’utilisation de ces commandes pour éviter toute erreur d’utilisation. 🎜

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!

Déclaration:
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