1943 votes

Annulation de la copie de travail les modifications d'un fichier dans Git?

Après le dernier commit, j'ai modifié un tas de fichiers dans ma copie de travail, mais je veux annuler les modifications apportées à l'un de ces fichiers, comme dans le réinitialiser à l'état le plus récent de la validation.

Cependant, je ne veux annuler la copie de travail les changements de juste ce fichier seul, rien d'autre.

Comment dois-je faire?

2576voto

Brian Campbell Points 101107

Vous pouvez utiliser

git checkout -- file

Vous pouvez le faire sans l' -- (comme suggéré par nimrodm), mais si le nom de fichier ressemble à une branche ou une étiquette (ou un autre identificateur de révision), il peut se confondre, donc à l'aide d' -- est le meilleur.

Vous pouvez également consulter une version particulière d'un fichier:

git checkout v1.2.3 -- file         # tag v1.2.3
git checkout stable -- file         # stable branch
git checkout origin/master -- file  # upstream master
git checkout HEAD -- file           # the version from the most recent commit
git checkout HEAD^ -- file          # the version before the most recent commit

194voto

nimrodm Points 9191

Utilisez simplement

git checkout filename

Ce sera de remplacer le nom de fichier avec la dernière version de la branche courante.

AVERTISSEMENT: vos changements seront ignorés — pas de sauvegarde est conservée.

149voto

neoneye Points 11545
git checkout <commit> <filename>

J'ai utilisé aujourd'hui car j'ai réalisé que mon favicon avait été écrasé quelques engage, j'upgrated drupal 6.10, j'ai donc dû le récupérer. Voici ce que j'ai fait:

git checkout 088ecd favicon.ico

98voto

thanikkal Points 918

Utilisation

git reset HEAD <file>

pour unstage vos modifications. Alors

git checkout <file>

25voto

sykora Points 30290

Si vous souhaitez simplement annuler la précédente livraison de modifications apportées à un fichier, vous pouvez essayer ceci:

git checkout branchname^ filename

Cela permettra d'extraire le fichier tel qu'il était avant le dernier commit. Si vous voulez aller un peu plus s'engage à l'arrière, utilisez l' branchname~n de la notation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X