11

我们的 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 子模块时,这个问题非常糟糕。

4

1 回答 1

0

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

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

git commit -i -m "blah" .

我们似乎解决了这个问题。Git 从未声称我们需要在根子模块中提交,但似乎我们确实需要。到目前为止,后续合并似乎工作正常。

于 2015-05-15T03:22:30.673 回答