赞
踩
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
这才算完。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。