为什么不提交遵循merge-base错误?

时间:2013-02-28 07:10:43

标签: git git-merge git-submodules

我们对git的过程是定期合并到我们的主分支,以便可以将更改合并回我们的最新功能分支。自从最近几轮从一个分支机构合并到另一个分支机构以来,我们遇到了一个解决方案不明确的问题。

我们有一个存储库,其中包含19个子模块。当我们合并所有子模块时,我们看到我们认为是预期输出告诉我们文件被修改,冲突等等。然后当我们进入“根”存储库的合并时,一切都向南,我们看到一些以下输出(编辑以指出问题)。

warning: Failed to merge submodule projects/foo1 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo2 (commits don't follow merge-base)
warning: Failed to merge submodule projects/foo3 (not fast-forward)

Found a possible merge resolution for the submodule:
 931a61165f3b2079523a122477fa5f44c123406d: Comment of last merge

If this is correct simply add it to the index for example by using:

 git update-index --cacheinfo 160000 931a61165f3b2079523a122477fa5f44c123406d "projects/foo3"

which will accept this suggestion.

现在,我们可以运行建议的git update-index命令。这将使git对这一个子模块感到高兴,但我们以前从未必须运行它。在查看没有显示帮助的foo1和foo2子模块时,问题非常严重。

1 个答案:

答案 0 :(得分:0)

如果OP在他的问题下面的评论消失了:

  

对于那些浏览这篇文章的人来说,虽然我并不是100%确定发生了什么,但我认为这是因为用户从他们的根存储库中手动删除了GIT_MERGE文件并被推送。通过手动合并每个子模块,推送更改,然后在运行

的根子模块中
git commit -i -m "blah" .
     我们似乎解决了这个问题。 Git从未声称我们需要在root子模块中提交,但看起来我们确实需要。到目前为止,后续合并似乎工作正常。