真的,submodule add
和submodule init
之间有什么区别?或者更确切地说,什么时候你想要使用一个没有另一个?
答案 0 :(得分:3)
当您想要为项目添加新的子模块时,可以使用git submodule add
。
当您克隆具有子模块的项目时,或者其他人已将子模块添加到项目时,您使用git submodule init
。
答案 1 :(得分:2)
添加是指您想要将另一个git存储库导入当前的git存储库(称为“超级项目”)。要执行该操作,它会在.gitmodules
中记录存储库的路径,从而将其添加到索引中。
子模块init将创建索引中记录的已存在的子模块。这是通过在git中配置索引中找到的路径来实现的。
添加:
将给定的存储库添加为给定路径下的子模块,该路径指向要在当前项目旁边提交的变更集:当前 项目被称为“超级项目”。
初始化:
初始化索引中记录的子模块(已添加 将子模块名称和网址从
.gitmodules
复制到.git/config
,然后在其他地方提交。
因此,init会检出已经记录在索引中的子模块,这些子模块以前添加了
git submodule add my_sub_project directory_in_superproject
通常在克隆超级项目时,您会这样做:
git clone superproj
然后在项目中:
git submodule update --init