情况:
我有一个包含子模块的存储库。
普通人(比如我)没有这个子模块的读取权限,这不是真正的问题,因为运行项目不需要它。
我的问题是,每次我检查一些东西时,我都会收到错误消息,告诉我子模块更新失败,因为无法读取子模块远程:
fatal: Needed a single revision
Unable to find current revision in submodule path
毫不奇怪......
我试图从 .gitmodules 中手动删除它,然后使用
git update-index --assume-unchanged .gitmodules
但这只在下一次 checkout 之前有效,因为子模块似乎得到特殊对待。
我的问题:
我如何抑制这些错误并完全忽略本地此子模块的存在...包括所有试图重新引入它的进一步远程更改?
注意:请假设解决方案必须留在我这边并且不需要在远程端进行任何更改...因为它们不会发生(已经尝试与 repo 管理员交谈)
最佳答案
复制这种情况有点困难,但根据评论中的讨论
git submodule deinit -f .
有帮助。如果有人在这里绊倒,来自docume ntation人们可能会发现在初始化期间,实际的 git pull
是在子模块上完成的。因此,如果您没有访问远程子模块存储库的权限,则本地 git 没有 master 分支,也没有要 check out 的提交,这就是错误消息背后的含义。
更新:如果您使用的是 SourceTree 或 SmartGit 之类的图形用户界面,请检查存储库设置并禁用子模块的自动更新。
根据您的设置,仅禁用“初始化新子模块”可能已经解决了问题:
关于git - 在没有读取权限的情况下忽略 git 子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719399/