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

好吧,我有一个小谷歌,无法找到一个解决方案,因为我偶然发现了相同的信息,但不同的方式,人们已经得到了它。我是 Mecurial 的新手,我想确认一下我做的是否正确。

所以我得到了如上所示的错误消息。我有一个开发网站和一个现场网站,我试图推动代码的代码基础。

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

我已经运行了 hg log,只有6次提交,因为它是一个干净的/新的分支/项目。任何帮助都将非常感谢,如果我没有正确地解释任何事情,我道歉!

102042 次浏览

这不是一个“错误”消息; 这是一个完全正常的情况。这个信息是说: “嘿,当你在做你的工作的时候,其他人把新的工作推到了存储库中,你可能应该把他们的工作整合到你的工作中,这样他们就不必把你的工作整合到他们的工作中了。”

所以首先做一个:

hg pull

然后是:

hg merge

顺便说一下,如果你真的使用了 hg revert命令,你的 revert没有从历史记录中删除这些文件,所以你的历史记录可能相当大。

考虑阅读 反复无常的书的前几章,它很好地涵盖了这些情况。

如果你想 取消你们相互冲突的改变

hg outgoing

您应该看到包含已提交/冲突的更改的行,这些更改没有被推送

searching for changes
changeset:   64:1830948c246e

然后

hg strip 64

这招对我很管用。

hg push -f

想知道更多命令,试试

hg help push

在 TortoiseHg 上你可以这样做:

提交文件

2 = > 转到您想要推送代码的新分支

在这个分支上,运行 Merge with development

推送你的代码没有错误!

如果您正在使用 Workbench 来推送更改,您可以首先尝试检测输出更改,请参阅附加的图像

enter image description here

这将给你什么是你要推的信息。 我的问题是,我有一个旧的 draft等待推出。我能够继续推动一旦我做了 strip的旧草案。