version-control - 如何撤销“中止:推送在分支上创建新的远程头”

标签 version-control mercurial

我知道Mercurial for Beginners: The Definitive Practical GuideMercurial merge branches? (abort: push creates new remote branches)之类的答案

在这里,我无意中造成了Mercurial想要创建一个新的远程头的情况。取消此错误并在远程端留下很少或根本没有此错误的最佳方法是什么?

###> hg push
pushing to http://example.com
searching for changes
abort: push creates new remote heads on branch 'default'!
(did you forget to merge? use push -f to force)

###> hg revert --all -r tip

###> hg update -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved

###> hg incoming
comparing with http://example.com
searching for changes
no changes found

###> hg summary
parent: 488:e3db024fe901 tip
 Misc.
branch: default
commit: (clean)
update: 6 new changesets, 2 branch heads (merge)

###> hg pull
pulling from http://example.com
searching for changes
no changes found

###> hg glog
@  changeset:   488:e3db024fe901
|  tag:         tip
|  summary:     Misc.
|
o  changeset:   487:b207579b9d41
|  parent:      480:ce775708800c
|  summary:     Misc.
|
| o  changeset:   486:59a7a5b34c7f
| |  user:        other
| |  summary:     fixes
| |
| o  changeset:   485:b28264333e18
| |  user:        other
| |  summary:     binary


如果合并,似乎还可以:

hg merge
abort: outstanding uncommitted merges


但是hg diff显示了我没有进行的各种更改。我愿意重新应用我的更改...如何将所有这些归结为一个小技巧,放弃所有本地更改?

最佳答案

看来当您完成hg merge时,您尚未提交结果更改集。

当您在另一个分支中合并时(在您的情况下,您可能需要指定hg merge 486以在其他用户更改中进行合并),它将合并该分支到您的工作目录中。然后,您需要使用合并工具或手动编辑文件(然后在发生任何冲突时运行hg resolve)来检查是否已解决所有冲突(如果有)。完成此操作后,您需要hg commit新的,合并的变更集。

这可以解释为什么hg diff给您许多您没有做的更改-它们是您尚未提交的在另一个分支上所做的更改。如果在工作目录中运行hg summaryhg parents,则应该看到列出了两个父项:486488。您应该hg commit这个工作目录,创建一个新的合并的489

如果要撤消当前合并并重新开始,则尝试运行hg update -C是正确的,该操作将把工作目录设置回其原始(未合并)状态。

如果您想摆脱更改(487488-您声明不介意重新应用更改),则最简单的选择就是无需重新扩展存储库,而只需重新克隆存储库并继续进行操作即可。从那里工作。

关于version-control - 如何撤销“中止:推送在分支上创建新的远程头”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840429/

相关文章:

hgignore 文件中的正则表达式负向后视

python - 将 Mercurial 迁移到 GitHub

mercurial - 在 Mercurial 中指定编辑器

visual-studio-2010 - 塑料单片机。这是正确的解决方案吗?

git - 'Poll SCM' Jenkins 功能如何知道存储库和分支轮询?

linux - 移动 .git 目录而不移动文件

svn - 将遗留项目(日期系列的文件夹)导入 Subversion

svn - 当其他团队成员只在 SVN 上工作时,在本地使用 Hg 并推送到 SVN 存储库——这可能吗?

gitosis 和 git clone 问题

git 假设不变的含义