git子项目

chien / 2023-08-09 / 原文

本文记录了如何在一个主项目中使用子项目进行开发。

参考链接

 

添加子模块

首先可以通过使用git submodule add命令加想要跟踪的项目的相对或绝对url的方式将子项目添加为当前仓库的子模块:

git submodule add https://github.com/vim/vim

以上命令将会添加一个名为vim的库。

默认情况下,子模块会将子项目放到一个与仓库同名的目录中。如果想放到其他地方,可以再命令结尾添加一个不同的目录。

 

克隆有子模块的项目

1. 使用 git clone命令克隆工作项目,默认会包含该子模块目录,但是目录中还没有任何文件。

然后运行两个命令:

git submodule init 用来初始化本地配置文件,git submodule update 则从该项目中抓取所有数据并检出父项目中列出的合适的提交。

上诉命令默认会对所有子仓库生效。执行完后,子目录处在和上一次提交时相同的状态。这两条命令可以简化成一步:git submodule update --init

2. 使用 git clone --recurse-submodules 命令克隆工作项目,会自动初始化并更新仓库中的每一个子模块,包括可能存在的嵌套子模块。

克隆完成后,本地便有一份包含子模块的项目副本。