Question Comment puis-je supprimer un commit sur GitHub?


J'ai "accidentellement" poussé un commit à GitHub.

Est-il possible de supprimer ce commit?

Je veux restaurer mon dépôt GitHub tel qu'il était avant ce commit.


1404
2018-01-15 23:20


origine


Réponses:


Remarque: S'il vous plaît voir l'alternative à git rebase -i dans les commentaires ci-dessous

git reset --soft HEAD^

Tout d'abord, supprimez le commit sur votre référentiel local. Vous pouvez le faire en utilisant git rebase -i. Par exemple, si c'est votre dernier commit, vous pouvez le faire git rebase -i HEAD~2 et supprimez la deuxième ligne dans la fenêtre de l'éditeur qui apparaît.

Ensuite, forcez la poussée sur GitHub en utilisant git push origin +branchName

Voir Git Magic Chapitre 5: Leçons de l'histoire - Et puis quelques-uns pour plus d'informations (c'est-à-dire si vous voulez supprimer des commits plus anciens).

Oh, et si votre arbre de travail est sale, vous devez faire un git stash d'abord, puis un git stash apply après.


1016
2018-01-15 23:24



git push -f origin HEAD^:master

Cela devrait "défaire" la poussée.


853
2018-01-16 00:11



Pour un retour facile si c'est juste une erreur (peut-être vous avez fourchu un repo, puis fini par pousser à l'original au lieu d'un nouveau) voici une autre possibilité:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

Évidemment, remplacez ce nombre par le numéro du commit auquel vous voulez retourner.

Tout sera ensuite supprimé une fois que vous appuyez à nouveau. Pour ce faire, la prochaine étape serait:

git push --force

293
2018-04-21 20:26



  1. git log pour connaître le commit que vous voulez revenir

  2. git push origin +7f6d03:master tandis que 7f6d03 est le commit avant le commit faussement poussé. + était pour force push

Et c'est tout.

Ici est un très bon guide qui résout votre problème, facile et simple!


70
2018-02-09 11:58



Vous devrez effacer votre cache pour l'effacer complètement. cette page d'aide de git va vous aider. (ça m'a aidé) http://help.github.com/remove-sensitive-data/


34
2017-07-27 22:38



Dans le cas où vous souhaitez conserver les modifications de validation après la suppression:

Notez que cette solution fonctionne si la validation à supprimer est la dernière validée.


1 - Copiez la référence de validation à laquelle vous souhaitez revenir depuis le journal:

git log

2 - Réinitialiser git à la référence de validation:

 git reset <commit_ref>

3 - Stash / stocker les modifications locales de la mauvaise validation à utiliser plus tard après avoir poussé à distance:

 git stash

4 - Poussez les modifications vers le référentiel distant, (-f ou --force):

git push -f

5 - Récupérez les modifications stockées dans le référentiel local:

git stash apply

7 - Si vous avez des fichiers non modifiés / nouveaux dans les modifications, vous devez les ajouter à git avant de les valider:

git add .

6 - Ajoutez les modifications supplémentaires dont vous avez besoin, puis validez les fichiers nécessaires (ou utilisez un point '.' Au lieu d'indiquer chaque nom de fichier pour valider tous les fichiers du référentiel local:

git commit -m "<new_commit_message>" <file1> <file2> ...

ou

git commit -m "<new_commit_message>" .

31
2018-06-07 14:44



Utilisation git revert pour revenir à votre poussée.

git-revert - Rétablir certains validations existantes

git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort

Rétablissez les modifications introduites par les correctifs associés et enregistrez de nouveaux validations qui les enregistrent. Cela nécessite que votre arbre de travail soit propre (pas de modifications de la part de HEAD commit).


24
2017-07-17 08:21