我们对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子模块时,问题非常严重。
答案 0 :(得分:0)
如果OP在他的问题下面的评论消失了:
对于那些浏览这篇文章的人来说,虽然我并不是100%确定发生了什么,但我认为这是因为用户从他们的根存储库中手动删除了GIT_MERGE文件并被推送。通过手动合并每个子模块,推送更改,然后在运行
的根子模块中我们似乎解决了这个问题。 Git从未声称我们需要在root子模块中提交,但看起来我们确实需要。到目前为止,后续合并似乎工作正常。git commit -i -m "blah" .