git pull错误:“致命:无法使用本地记录的子模块修改来进行变基”

时间:2019-01-16 11:22:03

标签: git

我在执行git pull时遇到此错误:

  

致命的:无法基于本地记录的子模块修改

搜索该错误消息基本上没有结果!对我来说这是第一次。

您可以在此处的git源代码控件中看到此错误(以确认它是真正的错误),https://github.com/git/git/blob/master/builtin/pull.c#L961

我尝试删除项目中的所有子模块,然后重新初始化它们,依此类推,没有什么可以让我在master分支上进行git pull的操作了。

1 个答案:

答案 0 :(得分:1)

很显然,您已将git pull设置为运行git rebase。当您执行此操作并启用了子模块递归时,git pull会检查子模块更改是否在将要重新建立基础的提交范围内,否则拒绝运行。

您可以简单地将其分解为单独的git fetchgit rebase命令:rebase没有子模块递归选项,因此这里不涉及。或者,您可以运行git pull --no-recurse-submodules告诉git pull不要查看任何子模块。

  

我尝试删除项目中的所有子模块...

您必须从要重新提交的提交范围内的每个提交中删除子模块 ,这将用没有子模块的新提交替换所有那些提交。由于无论如何您都可能会将它们全部替换为rebase,所以这不是很糟糕,但对您自己也不是很好-这将使您必须将它们还原到rebase中的每个提交中结果。