1625 votes

Comment puis-je supprimer un commit sur GitHub?

J'ai "accidentellement" poussé à s'engager à GitHub.

Est-il possible de supprimer cette commettre?

Je veux revenir à mon dépôt GitHub comme il était avant cette validation.

1158voto

Can Berk Güder Points 39887

Remarque: veuillez consulter alternative à l' git rebase -i dans les commentaires ci-dessous-git reset --soft HEAD^

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

Puis, à force de pousser à GitHub en utilisant git push origin +master.

Voir Git de la Magie Chapitre 5: les Leçons de l'Histoire - Et Puis Certains pour plus d'informations (par exemple, si vous souhaitez supprimer les anciens s'engage).

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

927voto

Dustin Points 35205
git push -f origin HEAD^:master

Qui doit "annuler" la poussée.

337voto

CodeWalrus Points 134

Pour un facile de revenir si c'est juste une erreur (peut-être que vous fourchue un repo, puis fini par le pousser à l'original, au lieu de les un nouveau) voici une autre possibilité:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

Évidemment swap dans ce nombre par le nombre de pensions de titres que vous voulez retourner.

Tout, depuis lors, sera supprimé une fois que vous pousser à nouveau. Pour ce faire, l'étape suivante serait:

git push --force

35voto

subutux Points 159

Vous aurez besoin de vider votre cache de l'avoir complètement effacé. cette page d'aide de git va vous aider. (il m'a aidé) http://help.github.com/remove-sensitive-data/

26voto

Jyoti Prakash Points 205

Utiliser git revert pour le retour de votre poussée.

git-revenir - Rétablir certains s'engage

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

Annuler les changements que les correctifs associés à introduire, pour enregistrer de nouveau s'engage à ce que les enregistrer. Cela nécessite de votre arbre de travail doit être propre (pas de modification de la TÊTE de valider).

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