Mercurial (hg) équivalent de git reset (mixte--ou --soft)
ce qui serait un équivalent mercurial commande (ou de travail) pour
git reset --mixed HEAD^
ou
git reset --soft HEAD^
c'est à dire je veux quitter l'arbre de travail intact, mais obtenir le référentiel de retour dans l'état où il était avant le dernier commit. Étonnamment je n'ai pas trouve quelque chose d'utile sur stackoverflow ou avec google.
Remarque que je ne peux pas utiliser
hg rollback
que j'ai fait de la réécriture de l'histoire à l'aide de HistEdit après le dernier commit.
Ajouté afin de préciser:
Après quelques année de référence et l'histoire de l'édition, j'ai eu terminé avec Un<--B<--C. Ensuite, j'ai utilisé HistEdit de squash B et C, l'obtention d'Un<--C'. Maintenant, je veux diviser le commettre C' (j'ai commis le mal de fichiers dans B). J'ai pensé que la meilleure façon de le faire était d'obtenir le référentiel de retour à Un état (qui, techniquement, n'a jamais existé dans le référentiel à cause de toute l'année de référence et l'histoire de l'édition avant de la main) et l'arbre de travail à l'état de C' et ensuite de faire deux commits.
- Double Possible de Mercurial annuler le dernier commit
Vous devez vous connecter pour publier un commentaire.
La bonne façon de répliquer
git reset --soft HEAD^
(annuler le commit courant mais conserver les modifications dans la copie de travail) est:-1
ne fonctionnera que si le commit que vous voulez bande est la dernière validation, qui est entré dans le référentiel..
se réfère à l'extrait de commettre, qui est l'équivalent le plus proche Mercurial a Git deHEAD
.Noter que si
.
a des descendants, ceux-ci vont obtenir dépouillé de trop. Si vous souhaitez garder le commit, puis une fois que vous avez la validation ID, vous pouvez au lieu de:Ce sera la mise à jour de la validation de la mère et ensuite de remplacer les fichiers dans la copie de travail avec les versions à s'engager.
hg strip
pourrait être abandonnées dans l'avenir et que je devrais envisager d'utiliserhg uncommit
ouhg undo -k
.