Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现git checkout的等效功能<;承诺>;在mercurial中使用子存储库?_Git_Mercurial - Fatal编程技术网

如何实现git checkout的等效功能<;承诺>;在mercurial中使用子存储库?

如何实现git checkout的等效功能<;承诺>;在mercurial中使用子存储库?,git,mercurial,Git,Mercurial,根据git reset--hard--的等价物是hg revert-a--no backup--。在这样做之后,我希望类似于git checkout的hg update-c能够工作 但是它失败了,出现了错误中止:子存储库'subrepo/subsubrepo'中未提交的更改,即使在运行hg revert-a之后,subrepo/subsubrepo和subrepo中没有备份。因此,仅确保子回购和主回购“干净”是不够的。您还必须确保子回购更新到与主回购的提交相对应的提交 在我看来,hg rever

根据git reset--hard--的等价物是
hg revert-a--no backup--
。在这样做之后,我希望类似于
git checkout
hg update-c
能够工作


但是它失败了,出现了错误
中止:子存储库'subrepo/subsubrepo'
中未提交的更改,即使在运行
hg revert-a之后,
subrepo/subsubrepo
subrepo
中没有备份。因此,仅确保子回购和主回购“干净”是不够的。您还必须确保子回购更新到与主回购的提交相对应的提交

在我看来,
hg revert
在大多数情况下比它的价值更麻烦(当你想取消合并时,它的行为也很奇怪)。如果您只是想让存储库看起来像工作目录的父目录,那么执行
hg-up-C.
(注意大写字母
-C
,记住这不会留下任何备份)通常更简单;您可以使用其他提交来替换
,以便在一个步骤中更新该提交。因为更新是递归的,所以在子repo上应该可以正常工作。但是,它将通过一个命令在整个存储库(包括Subrepo)上递归操作,因此请确保您没有放弃原本要保留的更改