hg:如何将新创建的分支推送回中央存储库?

Ale*_*tov 28 version-control mercurial

我通过克隆了中心存储库

hg clone my_project my_project_1
Run Code Online (Sandbox Code Playgroud)

然后在切换到新创建的仓库后,我将其标记为新分支

hg branch v1
Run Code Online (Sandbox Code Playgroud)

在我发布的新克隆里面

hg ci -m "branch created"
Run Code Online (Sandbox Code Playgroud)

但是当我试图将更改推回原来的存储库时,我克隆了这个错误:

abort: push creates new remote branches: v1!
Run Code Online (Sandbox Code Playgroud)

如何将分支推入原始存储库?我是否通过尝试将分支推入原始仓库来做正确的事情?我只想拥有一个包含分支的集中式存储库,我可以从中检查分支机构.处理这个问题的最佳方法是什么?谢谢.

Nia*_* C. 61

这取决于您使用的Mercurial版本.该命令曾经是hg push -f ...hg push --force ...强制在远程存储库中创建新分支(通常可以).

但是,使用-f还允许您在远程存储库中创建新的头(通常不行),因此Mercurial(1.6及更高版本)的当前版本有一个--new-branch选项hg push,允许您创建一个分支,但不创建新头,所以命令是:

hg push --new-branch
Run Code Online (Sandbox Code Playgroud)

您还可以将推送限制为仅使用该-b标志处理的分支,因此:

hg push --new-branch -b v1
Run Code Online (Sandbox Code Playgroud)

  • 看起来不像git,你必须创建一个能够推送的提交:`hg ci -m"创建一个分支" (2认同)