GIT:恢复状态 - 即使在子存储库中也是如此

时间:2013-01-10 16:42:09

标签: git

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

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

如果我还原项目,则子项目状态不会改变。

感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

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