使用subtree引入子项目
建立子仓库关系
首先添加一个远程仓库
git remote add -f <子仓库名> <子仓库地址>
这一步并不是必须的,只是为了以后的方便更新。
然后将上一步的远程仓库和当前仓库的某个目录链接起来
git subtree add --prefix=<子目录名> <子仓库名> <分支> --squash
prefix后的子目录名指的是子仓库将被放到主仓库下的哪个目录
子仓库名就是上一步添加的远程仓库,分支就是要使用的子仓库分支
–squash选项的含义是将子仓库的历史提交记录合并成一个添加到主仓库上,可以不加此选项,但是会导致主仓库的调教记录里把子仓库的提交记录再复制一遍。
此时subtree的子仓库关系已经建立完毕,只要push主仓库即可。其他人此时拉取主仓库后会自动拉取子仓库。
更新子仓库
子仓库如果有更新主仓库是不会自动更新的,所以需要手动在主仓库里更新子仓库。
首先git fetch <远程仓库名> <分支>
获取远程仓库的更新。
然后拉取子仓库的更新到子目录
git subtree pull --prefix=<子目录名> <远程分支> <分支> --squash