134 votes

Retour au dernier commit git

Je viens de faire un

git commit -m "blah"

Puis j'ai ajouté des fichiers, comment puis-je revenir en arrière et supprimer ce qui se trouve dans mes fichiers actuels qui n'ont pas encore été ajoutés/commandés ?

253voto

Joe Hanink Points 1602

Caveat Emptor - Commandes destructives à venir.

Atténuation - git reflog peut vous sauver si vous en avez besoin.


1) UNDO les modifications des fichiers locaux et GARDER votre dernier engagement

git reset --hard

2) UNDO les modifications des fichiers locaux et ENLEVER votre dernier engagement

git reset --hard HEAD^

3) GARDER les modifications des fichiers locaux et ENLEVER votre dernier engagement

git reset --soft HEAD^

50voto

Paul Pladijs Points 3630

Si vous souhaitez supprimer les contenus nouvellement ajoutés et les fichiers qui ont déjà été mis à disposition (et donc ajoutés à l'index), vous pouvez utiliser la fonction :

git reset --hard

Si vous voulez supprimer également votre dernier commit (celui avec le message "blah"), il est préférable d'utiliser :

git reset --hard HEAD^

Pour supprimer les fichiers non suivis (donc les nouveaux fichiers non encore ajoutés à l'index) et les dossiers, utilisez :

git clean --force -d

18voto

SpliFF Points 21945

git reset --hard forcera le répertoire de travail à revenir au dernier commit et supprimera les fichiers nouveaux/changés.

17voto

Abhishek saharn Points 613

Si vous voulez juste annuler le dernier commit, utilisez ceci :

git reset HEAD~

fonctionne comme un charme pour moi.

7voto

Terje Norderhaug Points 2567

Une méthode simple et infaillible pour annuler les changements de fichiers locaux depuis le dernier commit est de les placer dans une nouvelle branche :

git branch changes
git checkout changes
git add .
git commit

Cela laisse les changements dans la nouvelle branche. Retournez à la branche d'origine pour retrouver le dernier commit :

git checkout master

La nouvelle branche est un bon endroit pour pratiquer différentes manières de revenir sur des changements sans risquer de perturber la branche originale.

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