Version control Mercurial:当用作闭合分支上的祖先时,如何忽略分支的多个头
另一个git用户被Mercurial分支弄糊涂了。我做了一些我不知道如何撤销的事情,因此我无法推动我完全不相关的更改。任何帮助都将不胜感激 我想故事是这样的:Version control Mercurial:当用作闭合分支上的祖先时,如何忽略分支的多个头,version-control,mercurial,Version Control,Mercurial,另一个git用户被Mercurial分支弄糊涂了。我做了一些我不知道如何撤销的事情,因此我无法推动我完全不相关的更改。任何帮助都将不胜感激 我想故事是这样的: 我开始做一些关于默认值的事情。我意识到这是一个错误,因为它将成为一个公关,所以我下一次提交分支功能1。然后我在bitbucket上提交了一份PR 我开始做一些其他的事情,也是出于默认,这次我确定要使用一个分支功能2,并且在我的功能1提交之前,我特意用修订号“hg up-r…”,以便不包含该更改 在这一点上,历史看起来像
- 我开始做一些关于默认值的事情。我意识到这是一个错误,因为它将成为一个公关,所以我下一次提交分支功能1。然后我在bitbucket上提交了一份PR
- 我开始做一些其他的事情,也是出于默认,这次我确定要使用一个分支功能2,并且在我的功能1提交之前,我特意用修订号“hg up-r…”,以便不包含该更改
-- G (default) - H (feature1)
/
.. D - F (default)
\
-- I - J - K (feature2)
-- G (default) - H (feature1) [my repository, closed]
/
.. D - F (default)--- L (default) [parent repository]
\
-- I - J - K (feature2) [my repository]
- 我的PR没有被接受,所以我关闭了feature1
- 父存储库中已经有了默认开发,所以我
。现在看起来有点像hgpull
-- G (default) - H (feature1) / .. D - F (default) \ -- I - J - K (feature2)
-- G (default) - H (feature1) [my repository, closed] / .. D - F (default)--- L (default) [parent repository] \ -- I - J - K (feature2) [my repository]
- 但是我对feature2很满意,我想为它做一个公关,所以我试着推出新的分支,但我得到了信息
中止:推送创建新的远程磁头7a341084eb8aabort: push creates new remote head 7a341084eb8a!
hg glog
,它显示校验和与父工作对应,即上图中的L
。Mercurial似乎在抱怨我在一个关闭的分支上提交了一个分支default
,该分支尚未合并到default
!但我不想让它再存在了!然而,我不想剥去它,因为那样会使阅读旧的、封闭的PR变得不可能
如果我尝试只推我自己的分支,hg push--new branch-b feature2
,那么我会得到:
abort: push creates new remote head 062efd5d0886!
abort: push creates new remote head 062efd5d0886!
i、 同样的问题,但不同的头。这一个似乎与功能2的第一个补丁对应!也就是说,在我的图表中,I
这毫无意义。。一个关闭的分支阻止我将更改推送到另一个完全不同的分支上。同时,我不知道在推我的feature2分支时,它甚至在说什么多个头部,因为实际上只有一个feature2。建议在推之前“合并”,但我甚至不知道要合并什么。我不想在默认情况下合并我被拒绝的更改,当我在feature2上执行hg merge default
时,我想也许我需要考虑最新的上游更改,这将从我关闭的分支而不是上游头合并G
所以,很明显,我不理解Mercurial分支。在git中,我只需删除feature1分支,就是这样。我如何解决这个问题
但是我对feature2很满意,我想为它做一个公关,所以我试着推动新的分支,但我得到了信息
abort: push creates new remote head 7a341084eb8a!
此时,revision L
是分支机构的负责人default
,您正在尝试发送revision G
。修订版G位于默认
分支中,因此您将创建另一个头部。分支feature1
已关闭,但未关闭修订版G
中的默认分支。您可以更新到修订版G
,然后关闭分支,或者将其与修订版L
合并
如果我尝试只推我自己的分支,hg push--新分支-b特性2,
然后我得到:
abort: push creates new remote head 062efd5d0886!
abort: push creates new remote head 062efd5d0886!
如果revision I
位于default
分支中,则会出现与上述相同的问题
如果没有,请尝试hg push-r