在Mercurial复制一个分支?

在Mercurial复制一个分支?,mercurial,Mercurial,如何在Mercurial中复制分支?我需要新的分支机构与之对抗(就像第一个一样) GIT等价物(如果我在a分支机构)是: git checkout -b branch-b Mercurial分支是由分支中包含的所有提交组成的命名实体。因此,为了复制某些现有分支,还必须将其所有提交复制到新分支中的新提交。然后我们开始讨论,到这里可能根本不是一个好主意,但是如果您确实想到这里,请使用hg graft将所有所需的提交复制到新分支中 Git分支由包含原始提交散列ID的名称组成。因此,用新名称复制Gi

如何在Mercurial中复制分支?我需要新的分支机构与之对抗(就像第一个一样)

GIT等价物(如果我在a分支机构)是:

git checkout -b branch-b 

Mercurial分支是由分支中包含的所有提交组成的命名实体。因此,为了复制某些现有分支,还必须将其所有提交复制到新分支中的新提交。然后我们开始讨论,到这里可能根本不是一个好主意,但是如果您确实想到这里,请使用
hg graft
将所有所需的提交复制到新分支中

Git分支由包含原始提交散列ID的名称组成。因此,用新名称复制Git分支是很简单的。请注意,包含任何给定提交的分支集随时间动态变化:仅在
feature/tall
上的分支现在可能仅在
master
上,即使该提交仍然是提交,即使通过大多数形而上学参数也是如此。(只有“随着时间的推移没有标识”参数允许我们声明这不是相同的提交。)

另一种说法是Mercurial的分支实际上意味着什么,而Git的分支则没有。如果您需要真正的分支,那么首先就不能使用Git。不要试图将Git的古怪引入Mercurial:你只会让自己的生活变得悲惨

同时,Mercurial包含一个与Git类似的DAG。如果您使用Mercurial书签,它们的工作原理与Git分支类似。那么,只使用书签并完成它可能更明智


如果所有其他操作都失败,请参见
hg graft

Mercurial分支是一个命名实体,它包含分支中包含的所有提交。因此,为了复制某些现有分支,还必须将其所有提交复制到新分支中的新提交。然后我们开始讨论,到这里可能根本不是一个好主意,但是如果您确实想到这里,请使用
hg graft
将所有所需的提交复制到新分支中

Git分支由包含原始提交散列ID的名称组成。因此,用新名称复制Git分支是很简单的。请注意,包含任何给定提交的分支集随时间动态变化:仅在
feature/tall
上的分支现在可能仅在
master
上,即使该提交仍然是提交,即使通过大多数形而上学参数也是如此。(只有“随着时间的推移没有标识”参数允许我们声明这不是相同的提交。)

另一种说法是Mercurial的分支实际上意味着什么,而Git的分支则没有。如果您需要真正的分支,那么首先就不能使用Git。不要试图将Git的古怪引入Mercurial:你只会让自己的生活变得悲惨

同时,Mercurial包含一个与Git类似的DAG。如果您使用Mercurial书签,它们的工作原理与Git分支类似。那么,只使用书签并完成它可能更明智

如果所有其他操作都失败,请参阅
hg-graft

新的分行将面临破产

这是什么(用通常的商业术语,不是Git lingua)?虽然@torek的共同点(以及细节)是完全正确的,但他忘记了编写确切的命令集,比如

hg up <rev-id>
hg branch <new-branch-name>
hg graft -r "branch(old-branch-name)" --log
hg up
汞分支
hg-r“分支(旧分支名称)”--日志
新的分行将面临破产

这是什么(用通常的商业术语,不是Git lingua)?虽然@torek的共同点(以及细节)是完全正确的,但他忘记了编写确切的命令集,比如

hg up <rev-id>
hg branch <new-branch-name>
hg graft -r "branch(old-branch-name)" --log
hg up
汞分支
hg-r“分支(旧分支名称)”--日志

事实上,hg分支不是git分支这一点再强调也不为过。git分支的等价物是hg bookmark。此外:在hg中,没有必要像git那样命名分支。。。匿名heads工作得很好。事实上,hg分支不是git分支这一点再怎么强调也不为过。git分支的等价物是hg bookmark。此外:在hg中,没有必要像git那样命名分支。。。匿名头很好用。出于好奇,你为什么想/需要这样做?我不是git专家,但我不认为git checkout-b“复制”了一个分支。它似乎只是创建了一个新的?@DaveInCaz它创建了一个具有相同提交的新的。这就是我所说的“复制”。为什么需要复制所有提交?你就不能从一个方便的初始提交的起点开始分支吗?基本上,我想接受我已经完成的工作,但可以自由地以不同的方式完成任务。我希望在不影响新分支的情况下删除原始分支的可能性。我还想看到新分支中的所有变化(相对于master)。出于好奇,为什么你想/需要这样做?我不是git专家,但我不认为git checkout-b“复制”了一个分支。它似乎只是创建了一个新的?@DaveInCaz它创建了一个具有相同提交的新的。这就是我所说的“复制”。为什么需要复制所有提交?你就不能从一个方便的初始提交的起点开始分支吗?基本上,我想接受我已经完成的工作,但可以自由地以不同的方式完成任务。我希望在不影响新分支的情况下删除原始分支的可能性。我还希望看到新分支中的所有更改(相对于master)。