Mercurial 为什么我有时但不总是在麦库里尔的一根树枝上有两个头?
有时,我的默认分支上会出现两个头,但并不总是这样。事件的顺序类似于:Mercurial 为什么我有时但不总是在麦库里尔的一根树枝上有两个头?,mercurial,Mercurial,有时,我的默认分支上会出现两个头,但并不总是这样。事件的顺序类似于: hg pull hg update -C default hg branch mybranch hg merge default //merge in default hg commit -m"merged mybranch into default" hg heads -default //shows 2 heads hg push --branch default //won't let ne. create 2 hea
hg pull
hg update -C default
hg branch mybranch
hg merge default //merge in default
hg commit -m"merged mybranch into default"
hg heads -default //shows 2 heads
hg push --branch default //won't let ne. create 2 heads
“竞争对手”头像似乎是当天早些时候承诺违约的变更集
我不明白的是,为什么有时候会发生这种情况,而不是别的时候
我通常得到的解释是,另一个人在我拉(我在上面列表中的第一个动作)后推动了一个改变。但我认为这种情况在其他情况下也会发生,例如,在我开始之前,他推动了他的变更集
我会想,当我用他的承诺拉违约时,我用一个头得到违约。我的合并/提交应该在这之后创建一个新的头。为什么会产生第二个头部
hg heads
hg branch
不提交什么都不做(您没有mybranch)首先,这是一个完全正常的情况。这不是一个问题,不是一个错误,也不是需要避免的事情——而是DVCS的工作方式 简言之:当两个人从同一个地方开始工作并做不同的事情时,你会有两个脑袋。无论他们是在自己的(命名的)分支(如您在上面所做的)还是在
default
上这样做。一旦您将您的工作合并回default
,而其他人已经完成了default
的工作,您就有了两个负责人,必须有人进行合并。事情就是这样
在你推之前,先做一个hg pull
,然后再做一个hg merge
,你将通过创建一个新的合并提交,将你的工作与你的工作集成在一起,有两个父母——你的工作和他们的工作——然后你推,你将看不到那个警告
顺便说一句,您可能想查看书签
功能。与您正在使用的命名分支相比,它更适合您在上面所做的每个功能分支,但它无法避免您必须处理多个头部。显示两个头部的“hg日志”将非常有用。