0

这就是我理解子模块的方式:具有状态(提交 ID)的独立存储库记录在主存储库中,以便能够在特定时间点恢复整个状态。

但是,如果我在主存储库中,不应该检出过去的提交(“分离的 HEAD”)或分支导致检出相应的子存储库状态吗?

如果我恢复项目,子存储库状态不会改变。

感谢您提供任何帮助!

4

1 回答 1

1

git checkout从逻辑上讲,在很多情况下,在您在主存储库中执行操作的同时切换子模块中签出的修订版是有意义的。但是,有时,您不想这样做,出于这个原因(可能还有其他原因),git开发人员选择不将其作为git checkout. 相反,您有一个两步过程,运行git checkout <something>后将git submodule update所有子模块调整为当前签出的主版本。在您养成习惯之前有点痛苦,但它允许您检查不同的修订以供审查,而不会增加每次更新子模块的性能负担,这在具有许多子模块的大型项目中可能很重要。

于 2013-01-10T16:55:35.913 回答