最初只需要git子模块更新吗?

dee*_*lue 11 git-submodules

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

我试图找到超级项目引用的子模块的哪个版本,在.gitmodules和中.git/config,但是没有提到......
场景是我正在更改其根位置(从中导入它们)的子模块,然后将它们拉入"子模块化"的位置......
除了从超级项目中提交以将这些更改合并到超级项目仓库之外,我是否还需要git update注册新的拉入式子模块提交?

基本上问题是:

git submodule update只有当我第一次克隆超级项目时,或者每次拉动子模块(来自它自己的回购)后,我才需要" "吗?

谢谢

Von*_*onC 20

正如我之前的回答中所提到的那样git submodule update,该命令根据文件检查项目的特定版本.gitmodules.

GitPro页面不坚持:

这是子模块的一个重点:您将它们记录为它们所处的确切提交.

您可以通过在"超级项目"(引用一个或多个子模块的那个)中运行来查看引用了哪个提交:

  • git submodule status(除非你做了一些该子模块中直接提交,thinat情况下,它会显示一个" +在前面" SHA-1HEAD已经从先进的任何子模块SHA-1存储在上层项目)或
  • git ls-files --stage 寻找模式"160000"中的条目,这是Git索引中的一个特殊条目.

这意味着,每次在"超级项目"中执行git命令时,都可以修改子模块提交SHA1,你需要一个" git submodule update".

只有当我第一次克隆超级项目时,或者每次拉动子模块(来自它自己的仓库)后,我才需要"git submodule update"吗?

是的,每次下拉主项目中的子模块更改时都必须执行此操作.
那是因为您正在引用子模块原始repo所处的确切提交(如上所述),并且当您拉回该repo时,您正在有效地修改该提交.