Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
Mercurial 在反复无常中怎么拉?_Mercurial - Fatal编程技术网

Mercurial 在反复无常中怎么拉?

Mercurial 在反复无常中怎么拉?,mercurial,Mercurial,我已通过以下命令将bitbucket中的分支名称abc克隆到本地: $ hg clone -b abc https://bitbucket.org/asda/da/ $ hg pull -b abc $ hg update 接下来,我从abc branch创建了一个分支名称xyz,它是我的工作分支 $ hg branch <branch name> 我总是先到abc分行结账,然后再找零钱。当我拉动更改时,没有任何更改,对此非常困惑。拉动后,它显示更改的文件总数。但无法看到更改

我已通过以下命令将bitbucket中的分支名称abc克隆到本地:

$ hg clone -b abc https://bitbucket.org/asda/da/
$ hg pull -b abc
$ hg update
接下来,我从abc branch创建了一个分支名称xyz,它是我的工作分支

$ hg branch <branch name>
我总是先到abc分行结账,然后再找零钱。当我拉动更改时,没有任何更改,对此非常困惑。拉动后,它显示更改的文件总数。但无法看到更改

另一个问题是,如果我在分支abc上拉取更改,并且当我签出xyz分支时,所有更改是否在xyz分支中自动更新


请帮帮我。

画一张树枝的图。当您拉取新变更集时,它们总是以相同的顺序添加到上游存储库中的相同分支中。换句话说,当你从abc中提取时,你扩展了abc。您不需要在拉车之前切换到abc,也不需要在拉车之后更新

a--a--a--a--a1--a2
          \
           x--x--x
a=分行abc;a1,a2=abc上的新变更集;x=分支xyz

您拉取的新变更集对分支xyz的尖端没有影响。要在分支中受益于它们,请使用命令merge

然后你将到达点X',xyz的新尖端


拉然后合并意味着拉abc,然后将abc合并到xyz?a1和a2是您刚才拉的新变更集。您还可以使用分支名称进行合并:它被理解为该分支上的最后一次修订,所以hg merge abc将与hg merge a2相同。hello@alexis从远程bitbucket中拉出本地更改abc分支,并签出xyz,hg merge abc合并abc解决了冲突并继续处理该分支。现在,当我运行hg add时。然后运行hgcommit-m,它会给我错误中止:取消合并的更改。是因为合并后我没有提交或更新分支吗?解决方案真的卡在这里了,我也不想丢失我在xyz分支上所做的更改。中止:未提交的更改这是我在提交后遇到的错误。是的,听起来像是个错误,你应该一直遵循我的方法。在您尝试更多操作之前,请创建一个完整的备份副本,这样您就不会丢失更改。我建议将您的本地repo克隆到一个姐妹目录,然后您可以手动复制所选的文件并一步一步地工作。但首先要研究它。这是一个新的问题,关于如何从错误的合并中恢复,这里有很多内容。我刚刚开始使用hg,有时我不知道发生了什么。
hg update xyz
hg merge a2
hg commit
a--a--a--a---a1---a2
          \        \
           x--x--x--X'