[英]“no branch” on git submodule
我正在一个git项目上工作,它依赖于git子模块,该模块指向过时的提交,而该提交对于主项目不可用。 在成功地将此子模块的master分支更新为我想使用的提交(从外部存储库中抓取)后,我返回到子模块的父级(主项目),并发出git submodule update
因为我理解这是正确的使家长了解更新的方法。 但是,如果现在移回子模块文件夹,则会看到我处于(无分支)状态,这仍然是旧的无法使用的提交的分支。 在子模块中,我确实看到了我想使用的版本更新的master分支。 这使我认为我没有设法正确地将子模块更新为我的首选提交。 还是不应该从主项目中更新子模块?
谢谢!
这是一个简单的错误:
在将该子模块的master分支成功更新为我想使用的提交(从外部存储库中获取)后,我返回到子模块的父级,即主项目,
到目前为止很好,但是然后:
并发布
git submodule update
否:这会将子模块拉回到记录的旧快照。
使子模块进入所需状态后,您想要做的就是像您一样回到超级项目,然后运行:
git add path/to/submodule
这将更新您的索引/暂存区,就像git add
将常规文件复制到索引中一样。
最终-当所有文件和子模块的哈希都正确时-然后应运行git commit
进行新的提交。 新提交将保存新快照,其中包括子模块的新哈希ID,只要该提交已签出,子模块就将处于“无分支/分离的HEAD”模式。
请注意,与常规文件不同,签出提交不会将子模块放到正确的提交中。 只有git submodule update
可以做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.