Supprimer un git commit qui n'a pas poussé

j'ai fait un git commit mais je ne l'ai pas encore poussé au dépôt. Alors, quand je fais git status , j'obtiens '# Votre branche est en avance de 'master' en 1 s'engager.

donc, si je veux revenir en arrière, puis-je juste faire:

git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316

étant donné que quand je fais git log , j'obtiens:

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


commit db0c078d5286b837532ff5e276dcf91885df2296
Date:   Tue Sep 22 10:31:37 2009 -0700
416
git
demandé sur Lonely Neuron 2009-10-23 07:19:02

8 réponses

en fait, lorsque vous utilisez git reset , vous devriez faire référence à la propagation que vous êtes en train de réinitialiser en ; donc vous voudriez probablement la propagation db0c078 .

une version plus facile serait git reset --hard HEAD^ , pour réinitialiser à la propagation précédente avant la tête courante; de cette façon vous n'avez pas à copier autour des identifiants de propagation.

méfiez-vous quand vous faites n'importe quel git reset --hard , comme vous pouvez perdre n'importe quels changements non engagés que vous avez. Vous pourriez vouloir vérifier git status assurez-vous que votre copie de travail est propre, ou que vous ne voulez souffler toutes les modifications qui y sont.

en outre, au lieu de tête, vous pouvez utiliser origin/master comme référence, comme suggéré par @bdonlan dans les commentaires: git reset --hard origin/master

421
répondu Brian Campbell 2017-05-09 08:57:13

si vous N'avez pas poussé vos modifications à distance

git reset HEAD~1

Vérifier si la copie de travail est propre git status .

sinon vous avez poussé vos modifications à distance

git revert HEAD

Cette commande va revenir/supprimer le dernier commit/modifier, puis vous pouvez pousser

379
répondu jkuruvila 2016-10-08 04:21:00
git reset --hard origin/master

pour le remettre à son origine.

cela a été posté par @bdonlan dans le commentaires . J'ai ajouté cette réponse pour les gens qui ne lisent pas les commentaires.

121
répondu Shadowbob 2017-05-23 12:18:25

j'ai vécu la même situation que j'ai fait ci-dessous car c'est beaucoup plus facile. En passant commit-Id vous pouvez atteindre le commit particulier que vous voulez aller:

git reset --hard {commit-id}

comme vous voulez supprimer votre dernier commit donc vous devez passer le commit-Id où vous devez déplacer votre pointeur:

git reset --hard db0c078d5286b837532ff5e276dcf91885df2296
14
répondu Kamlesh Patidar 2016-04-07 17:13:53

C'est ce que je fais:

première Caisse votre succursale (pour mon cas master succursale):

git checkout master

puis réinitialiser à la tête distante^ ( il supprimera tous vos changements locaux ), force nettoyer et tirer:

git reset HEAD^ --hard && git clean -df && git pull
6
répondu Adnan 2018-03-06 15:59:02

tapez simplement dans la console:

$ git reset HEAD~
4
répondu marcdahan 2018-09-04 14:45:19

supprimer le dernier commit avant de pousser

git reset --soft HEAD~1

1 signifie le dernier commit, si vous souhaitez supprimer les deux dernières utiliser 2 , et ainsi de suite*

2
répondu Karina Haddad 2018-08-22 21:53:20

une façon serait de supprimer la branche locale et de vérifier cette branche du serveur si votre branche locale est en avance sur remote by multiple commits et que vous devez tous les décommander.

0
répondu saga123 2017-05-03 10:54:01