我创建了一个分支,在其中将存储库中的路径转换为子模块。我master
尚未将该工作合并到一起。完成该路径到子模块的转换后,我尝试切换回master
并得到以下错误:
以下未跟踪的工作树文件将被签出覆盖:
[...现在由子模块管理的文件列表...]
说得通。因此,我做到了git checkout --force master
。然后,当我切换回使用子模块跟踪路径的分支时,该路径为空,除了.git
在子模块中找到的指针查找之外。为了使子模块重新签出到索引中指定的提交,我需要这样做git submodule update --force
。
有没有更简单的方法来处理这种情况?
只要保留目录:
master
由于git submodule update
不是自动的,因此您将拥有所看到的那种体验。
一种解决方法是维护两个克隆(一个在主数据库上,一个在您的分支上)。
另一种方法是设置一个post-checkout
钩子,该钩子将:
git submodule update --force
是适当的。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句