最初只需要git子模块更新?
我得到了一堆git子模块(一厢情愿的想法?),我提出了更具体的问题,这是一个好兆头......
我试图在.gitmodules
和.git/config
找到超级项目引用的子模块的哪个版本,但是没有提到那里。
该场景是,我正在更改它们的根位置中的子模块(从中导入它们),然后将它们拉到“子模块”的位置。
除了从超级项目提交将这些更改合并到超级项目回购中,我是否还需要执行“ git update
”来注册新的子模块提交?
基本上问题是:
仅当我第一次克隆超级项目时,或者在每次拉动子模块(从它自己的回购)后,才需要“ git submodule update
”?
谢谢
正如我以前对git submodule update
回答所述,该命令基于它们的.gitmodules
文件.gitmodules
项目的特定版本。
GitPro页面确实坚持:
这对于子模块来说很重要:您将它们记录为它们的确切提交。
您可以在“超级项目”(引用一个或多个子模块的那个)中看到哪个提交被引用:
git submodule status
(除非直接在该子模块中执行了一些提交,否则在从超级项目中存储的SHA-1
提前的任何子模块的HEAD
的SHA-1
的前面显示“ +
”)。要么 git ls-files --stage
在模式“160000”中查找条目,这是Git索引中的一个特殊条目。 这意味着,每次在“超级项目”中执行git命令(可能会修改该子模块提交SHA1)时,都需要“ git submodule update
”。
仅当我第一次克隆超级项目时,或者在每次拉动子模块(从它自己的回购)后,才需要“git submodule update”?
是的,每次在主项目中拉下子模块更改时都必须执行此操作。
这是因为您正在引用子模块原始库存的确切提交(如上所述),并且在您取回该库时,您正在有效修改该提交。
上一篇: git submodule update needed only initially?
下一篇: Adding a GitHub repository in Xcode 7 using SSH authentication gives an authentication error