我在执行git pull
时遇到此错误:
致命的:无法基于本地记录的子模块修改
搜索该错误消息基本上没有结果!对我来说这是第一次。
您可以在此处的git源代码控件中看到此错误(以确认它是真正的错误),https://github.com/git/git/blob/master/builtin/pull.c#L961
我尝试删除项目中的所有子模块,然后重新初始化它们,依此类推,没有什么可以让我在master分支上进行git pull
的操作了。
答案 0 :(得分:1)
很显然,您已将git pull
设置为运行git rebase
。当您执行此操作并启用了子模块递归时,git pull
会检查子模块更改是否在将要重新建立基础的提交范围内,否则拒绝运行。
您可以简单地将其分解为单独的git fetch
和git rebase
命令:rebase没有子模块递归选项,因此这里不涉及。或者,您可以运行git pull --no-recurse-submodules
告诉git pull
不要查看任何子模块。
我尝试删除项目中的所有子模块...
您必须从要重新提交的提交范围内的每个提交中删除子模块 ,这将用没有子模块的新提交替换所有那些提交。由于无论如何您都可能会将它们全部替换为rebase,所以这不是很糟糕,但对您自己也不是很好-这将使您必须将它们还原到rebase中的每个提交中结果。