9 votes

TortoiseHG : Suppression du commit

J'ai accidentellement commis un tas de fichiers localement, mais je ne les ai pas poussés. Donc, en fait, ce que je veux faire, c'est supprimer ce commit, puis pousser d'autres changements.

Je peux supprimer le commit par Backout-ing, puis je dois commiter localement pour qu'il soit effectivement supprimé localement.

Ma question est donc la suivante : si je fais un push, est-ce que mon commit accidentel et son journal de revertion correspondant seront visibles publiquement ?

17voto

Tim Henigan Points 19948

On dirait que hg rollback est la commande que vous voulez.

hg backout <REV> crée un nouveau commit qui annule les changements faits en <REV> . Le commit original et le commit de retour resteront dans votre historique. C'est l'une des rares options dont vous disposez pour corriger un mauvais commit après l'avoir poussé vers un emplacement public.

Cependant, dans ce cas, vous n'avez pas encore poussé vers le public, il existe donc de meilleures solutions.

Si le mauvais commit est le dernier commit qui a été fait (c'est-à-dire votre astuce) alors vous pouvez utiliser hg rollback (dans le cadre du Repository en TortoiseHg). Cette commande est comme "undo" pour les commits.

Si le mauvais commit se trouve ailleurs dans votre historique (mais n'a toujours pas été poussé vers un repo public), vous pouvez également utiliser la commande extension mq pour réécrire cette partie de votre histoire.

3voto

andref Points 264

Vous pourriez utiliser hg strip -r . --keep au lieu de hg rollback . hg backout ne serait nécessaire que si vous aviez poussé vos commits.

1voto

ScraperDave Points 186

La réponse simple à votre question est Oui.

Si vous effectuez un Backout, il apparaîtra dans votre historique.
Vous voulez effectuer un Strip, comme suggéré précédemment.

C'est une extension de mercurial.
https://www.mercurial-scm.org/wiki/StripExtension

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