Git revert de validation

J'ai un repo git connecté dans phpstorm sur windows. J'ai commis quelques ensembles de changement puis les ai poussés à notre "repo central". Après cela, j'ai ensuite fait quelques autres commits. Je ne veux plus ces commits qui n'ont pas été poussés au repo central. Comment nettoyer ma copie de travail pour qu'elle soit identique au repo central (origin)?

50
demandé sur Veger 2011-06-17 01:28:09

5 réponses

git reset --hard remotes/origin/HEAD
75
répondu Steve Prentice 2011-06-16 21:29:42
git reset --hard remotes/origin/YOUR/BRANCH

Mieux que /HEAD parce que vous ne voyez pas ceci:

$ git status
On branch MY/BRANCH
Your branch and 'origin/MY/BRANCH' have diverged,
and have 1 and 1 different commit each, respectively.
52
répondu Karl the Pagan 2012-09-10 15:20:44

Si vous en êtes sûr et que vous n'avez pas de changements locaux uncommitted:

git reset --hard origin/master

Où {[2] } est la branche vers laquelle vous avez poussé.

Le ref-log contiendra toujours les bits retournés, jusqu'à ce qu'un garbage collect les expire. Pour rétablir le retour,

git reset --hard HEAD@{1}
20
répondu sehe 2011-06-16 21:30:55

Vous pouvez annuler la validation locale par

git reset HEAD~N

Où N est utilisé pour rétablir le nombre de commits. Un exemple:

Si vous devez annuler un commit unique à partir de local, vous pouvez utiliser

git reset HEAD~1

Ou git réinitialiser la tête^

11
répondu uma 2015-03-06 15:58:06

Selon ma compréhension, vous créez un commit que vous avez poussé sur le repo central, après cela vous avez créé un peu plus de commit, mais ceux-ci existent sur local. Tout cela n'a pas poussé sur le repo central.

Pour supprimer / annuler la validation locale;

git reset HEAD~{number_of_commit}

Simplement, vous appuyez sur git log sur votre invite de commande et obtenez la liste des commits. Jetez un oeil, combien de commit vous avez créé maintenant et combien vous devez revenir.

Par exemple, vous devez supprimer.annule tes deux derniers commits alors hit

git reset HEAD~2

Il existe un autre moyen de réinitialiser votre repo local avec repo central. Mais, dans ce cas, votre commit local sera supprimé et si d'autres utilisateurs poussent commit sur repo central, votre repo sera mis à jour avec cela.

La commande

Est la suivante:

git reset --hard remotes/origin/HEAD
3
répondu 2014-03-18 10:47:18