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

时间:2013-09-10 16:28:56

标签: mercurial

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

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

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

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

6 个答案:

答案 0 :(得分:65)

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

首先做一个:

hg pull

然后a:

hg merge

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

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

答案 1 :(得分:16)

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

hg outgoing

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

searching for changes
changeset:   64:1830948c246e

然后

hg strip 64

答案 2 :(得分:15)

这对我有用。

hg push -f

要获得更多命令,请尝试

hg help push

答案 3 :(得分:1)

在TortoiseHg上你可以这样做:

1 =>提交文件

2 =>去做你想要推送代码的新分支

3 =>在此分支上,运行Merge with develop

4 =>推送你的代码没有错误!

答案 4 :(得分:0)

使用Mercury的最佳方法-在文件夹中制作git init。然后在本地使用git。合并到git等中。然后使用水银推回去。这是与水银打交道的最简单方法。 否则,水银只会根本不起作用。

答案 5 :(得分:0)

如果您使用工作台来推送更改,则可以先尝试检测出局更改,请参见附件图像

enter image description here

这将为您提供有关您要推动什么的信息。 我的问题是,我有一个待发的旧draft。在完成旧草稿上的strip后,我就可以继续进行推送。