web-dev-qa-db-fra.com

Mercurial: Comment annuler les modifications?

Lorsque vous utilisez Mercurial, comment annulez-vous toutes les modifications dans le répertoire de travail depuis le dernier commit? Il semble que ce serait une chose simple, mais ça m'échappe.

Par exemple, disons que j'ai 4 commits. Ensuite, j'apporte quelques modifications à mon code. Ensuite, je décide que mes modifications sont mauvaises et je veux juste revenir à l'état du code lors de mon dernier commit. Donc, je pense que je devrais faire:

hg update 4

avec 4 étant le numéro de révision de mon dernier commit. Mais, Mercurial ne modifie aucun des fichiers de mon répertoire de travail. Pourquoi pas?

58
Johnny Beegood

hg revert fera l'affaire.

Il vous ramènera au dernier commit.

--all annulera tous les fichiers.

Voir le lien pour la description de la page de manuel.

hg update est généralement utilisé pour actualiser votre répertoire de travail après avoir extrait un autre référentiel ou échangé des branches. hg up myawesomebranch. Il peut également être utilisé pour revenir à une version spécifique. hg up -r 12.

86
Paul Nathan

Une solution alternative à hg revert est hg update -C. Vous pouvez ignorer vos modifications locales et mettre à jour certaines révisions à l'aide de cette seule commande.

Je préfère généralement taper hg up -C car il est plus court que hg revert --all --no-backup :)

18
Andrey Vlasovskikh

hg revert est votre ami:

hg revert --all 

hg update fusionne vos modifications de votre copie de travail actuelle avec la révision cible. La fusion de la dernière révision avec vos fichiers modifiés (= copie de travail actuelle) entraîne les mêmes changements que vous avez déjà, c'est-à-dire qu'elle ne fait rien :-)

Si vous voulez lire sur Mercurial, je recommanderais le tutoriel très génial Hg Init .

6
pableu
hg revert --all 

et alors

hg pull -u 

travaille pour moi

1
Christian Vielma