Push创建新的远程头!(你忘了合并吗?使用push -f强制)

JDa*_*ies 70 mercurial

好吧,我有一个小谷歌,无法找到解决方案,因为我偶然发现了相同的消息,但人们有不同的方式.我是mecurial的新手,想要确保我正确地做到这一点.

所以我收到上面的错误信息.我有一个开发站点和一个实时站点,我正在尝试将代码推送到代码库.

然而昨天我不小心hg add添加了所有我不想做的媒体.之后我确实从代码库中删除了所有媒体文件,然后提交并推送更改.所以今天我一直在改变CSS文件和一些模板.我已经去提交我的更改并推送它们但是当我运行时hg push我得到上面的错误.

我运行hg log并且只有6次提交,因为它是一个干净的/新的分支/项目.任何帮助将不胜感激,如果我没有正确解释,我道歉!

Ry4*_*ase 69

这不是"错误"消息; 这是一个完全正常的情况.这条消息说"嘿,其他人在你做你的工作时把新工作推到了那个存储库,你应该将它们整合到你的工作中,这样他们就不必把你的工作整合到他们的工作中了?"

所以先做一个:

hg pull
Run Code Online (Sandbox Code Playgroud)

然后是:

hg merge
Run Code Online (Sandbox Code Playgroud)

顺便提一下,revert如果您实际使用该hg revert命令,那么您没有从历史记录中删除这些文件,因此您的历史可能非常大.

考虑阅读Mercurial书的前几章,它很好地涵盖了这些情况.


Woo*_*ody 19

如果您想取消有冲突的更改

hg outgoing
Run Code Online (Sandbox Code Playgroud)

您应该看到包含未推送的提交/冲突更改的行.搜索变更集修订版.这里64

searching for changes
changeset:   64:1830948c246e
Run Code Online (Sandbox Code Playgroud)

然后

hg strip 64
Run Code Online (Sandbox Code Playgroud)


小智 14

这对我有用.

hg push -f
Run Code Online (Sandbox Code Playgroud)

要获得更多命令,请尝试

hg help push
Run Code Online (Sandbox Code Playgroud)

  • 添加"force"标志实际上并不是"解决方案",而是"创建新的远程头"是一个错误. (12认同)
  • 这是一个_solution_,但前提是你知道自己在做什么.例如,当你关闭一个分支并想要重新启动分支时(没有合并,覆盖已关闭分支的任何更改,但具有相同的名称),那么`--force`可能就是你想要的.这里的关键是_知道你在做什么_,否则不要使用`--force`(这应该是你的默认值). (5认同)