1188 votes

Supprimer un commit git qui n'a pas été poussé

J'ai fait un git commit mais je ne l'ai pas encore poussé dans le dépôt. Donc quand je fais git status J'obtiens '# Votre branche est en avance sur 'master' de 1 commit.

Donc, si je veux revenir en arrière sur mon dernier commit, je peux juste faire :

git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316

étant donné que lorsque je fais git log J'ai compris :

commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
Date:   Tue Sep 29 11:21:41 2009 -0700

commit db0c078d5286b837532ff5e276dcf91885df2296
Date:   Tue Sep 22 10:31:37 2009 -0700

10 votes

Cette question semble être un doublon d'une autre de vos propres questions : stackoverflow.com/questions/1338728/how-to-delete-a-git-commit

1 votes

1 votes

61voto

Marc D. Points 1

Il suffit de taper dans la console :

$ git reset HEAD~

Cette commande rejette tous les commits locaux en avance sur le HEAD distant.

51voto

Karina Haddad Points 391

Supprimer le dernier commit avant le push

git reset --soft HEAD~1

1 signifie le dernier commit, si vous voulez enlever deux derniers commit utilisez 2 et ainsi de suite*.

23voto

Kamlesh Patidar Points 221

J'ai connu la même situation, j'ai fait ce qui suit car c'est beaucoup plus facile. En passant commit-Id vous pouvez atteindre l'engagement particulier que vous voulez aller :

git reset --hard {commit-id}

Comme vous voulez supprimer votre dernier commit, vous devez passer la balise commit-Id où vous devez déplacer votre pointeur :

git reset --hard db0c078d5286b837532ff5e276dcf91885df2296

12voto

adnan Points 87

C'est ce que je fais :

Vérifiez d'abord votre branche (pour mon cas master branche) :

git checkout master

Puis réinitialiser à distance HEAD^ ( cela supprimera tous vos changements locaux ), nettoyer et tirer avec force :

git reset HEAD^ --hard && git clean -df && git pull

4voto

saga123 Points 41

Une façon de procéder serait d'effacer la branche locale et d'extraire cette branche du serveur si votre branche locale est en avance sur la branche distante de plusieurs commits et que vous devez les annuler tous.

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