git submodule的使用

本文详细介绍了如何在Git项目中添加、更新和删除子模块。包括使用子模块避免额外文件跟踪,通过初始化和更新子模块确保正确检出,以及递归克隆包含子模块的项目。还提供了多子模块更新和子模块移除的具体步骤。

1. 假设当前工作目录是 /home/caz/main/,当前项目远程仓库是 https://xxxxx/main.git。
2.在main目录里,

git submodule add https://xxxxx/sub_mod.git sub_mod

这样就把sub_mod这个子项目链接到main里的主项目了。
在main目录里,会多出一个.gitmodules文件,和一个sub_mod目录。
3.然后,git add 这些文件目录,git commit,git push,就提交到远程git仓库了。
4.其他用户clone了这个main项目后,git submodule,会看到相关sub_mod信息,也有sub_mod目录和.gitmodules文件,但sub_mod没有checkout,sub_mod目录里是空的。
5.这时候,

git submodule init && git submodule update

就可以checkout出sub_mod来了。
也可以:

git clone --recursive https://xxxxx/main.git

这一步相当于git clone xxx && git submodule init && git submodule update
使用submodule的好处是,不用先检出sub_mod,再copy到main里来,sub_mod也可以随时更新,main里也不会有烦人的untrack文件信息。

如果主项目里有多个submodel,用下面命令更新。

git submodule foreach git pull

如果要删除submodel,比较麻烦:
1.

git rm -r --cached sub_mod

删除目录。
2.

rm .gitmodules

删除文件
3.

vim .git/config

删除config中的submodel配置。
4.git add
5.git commit

这才算完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值