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.
Réponse
Trop de publicités?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