Git子模块更新只需要一开始就需要吗?

Git子模块更新只需要一开始就需要吗?

我已经掌握了git子模块(一厢情愿的想法?)我想出了更具体的问题,这是个好兆头.

我已经尝试找到超级项目所指的子模块的哪个修订版,在.gitmodules.git/config但这里没有提到.。
场景是,我正在更改它们的根位置中的子模块(从其中导入它们),然后将它们拉到“子模块”的位置.
除了承诺将这些更改纳入超级项目回购之外,我还需要这样做吗?git update“要注册新的拉入子模块提交吗?

问题基本上是:

我需要“git submodule update“只有当我第一次克隆超级工程时,或者每次从子模块(从它自己的回购中)拉下之后?”

谢谢


素胚勾勒不出你
浏览 502回答 1
1回答

慕后森

正如我在上一次的答复中所提到的git submodule update,该命令根据它们的.gitmodules档案。这个Gitpro页面坚持:对于子模块来说,这是一个很重要的点:您可以将它们记录为它们所处的确切提交状态。您可以通过运行“超级项目”(引用一个或多个子模块)来查看引用哪个提交:git submodule status(除非您在该子模块中直接提交了一些信息,如果它将显示一个“+“在前面SHA-1.的.HEAD的任何子模块的SHA-1存储在超级工程中)或git ls-files --stage在模式“160000”中查找条目,这是Git索引中的一个特殊条目。这意味着,每次在“超级项目”中执行git命令(可以修改子模块提交SHA 1)时,都需要一个“git submodule update".我是否需要“git子模块更新”,只有当我第一次克隆超级项目,或在每次拉动子模块(从它自己的回购)?是的,每次在主项目中提取子模块更改时,您都必须这样做。这是因为您正在引用确切的提交子模块原始回购(如上面所述),并且当您拉动该回购时,您实际上是在修改该提交。
打开App,查看更多内容
随时随地看视频慕课网APP