775 votes

Besoin de réinitialiser la branche git à la version d'origine

Je travaillais accidentellement sur une branche que je n'aurais pas dû utiliser pendant un certain temps, alors j'en ai dérivé le nom approprié. Maintenant, je veux écraser la branche que je n'aurais pas dû utiliser pour la version d'origine (github). Y a-t-il un moyen facile de faire ceci? J'ai essayé de supprimer la branche puis de réinitialiser la branche de suivi, mais cela me donne simplement la version sur laquelle je travaillais à nouveau.

1363voto

VonC Points 414372

Si vous n'avez pas poussé encore d'origine, vous pouvez réinitialiser votre branche à l' amont de la direction, avec:

git checkout mybranch
git reset --hard origin/mybranch

(Assurez-vous que vous faites référence à votre dernier commit dans une branche distincte, comme vous le mentionnez dans votre question)

Notez que, juste après la réinitialisation, mybranch@{1} fait référence à l'ancien engager, avant la réinitialisation.

Mais si vous aviez déjà poussé, voir "Créer git branch, et de revenir original en amont de l'etat" pour d'autres options.


Comme commenté par Brad Herman, reset --hard serait de supprimer tout nouveau fichier ou réinitialiser le fichier modifié à la TÊTE.

En fait, pour être sûr que vous commencer à partir d'une "table rase", une git clean -f -d après la réinitialisation permettrait d'assurer un arbre de travail exactement identique à la direction générale vous venez de le réinitialiser.


Ce blog laisse croire que les alias ( master de la branche, mais vous pouvez adapter ou d'étendre celles-ci):

[alias]
    resetorigin = !git fetch origin && git reset --hard origin/master && git clean -f -d
    resetupstream = !git fetch upstream && git reset --hard upstream/master && git clean -f -d

Ensuite, vous pouvez taper:

git resetupstream

ou

git resetorigin

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