多个工程,存在通用目录或文件内容
举例
工程P1,目录结构:
- src1
- utils1
- test.js
- p1.js
- utils1
工程P2,目录结构:
- src2
- utils2
- test.js
- p2.js
- utils2
test.js可以为共有
观察P1、P2(下称主工程),我们可以把test.js 独立成一个子工程,只有一个分支master,根目录只有一个文件:
- test.js
准备
主工程根目录最好不为空(什么文件都没有)
在主工程根目录下执行:
$ git remote add 自定义名称 子工程仓库地址
$ git subtree add --prefix=项目自定义路径 自定义名称 子工程分支名称
操作之后,会将子工程根目录下所有内容(不包括项目根目录)clone到项目自定义路径路径下
项目自定义路径最好不为项目根目录(/、./等,我没成功-_-!!!)
自定义名称上下要对应
子工程分支名称使用子工程哪个分支
操作
在主工程改动了子工程
正常push主工程之后,额外push子工程内容:
$ git subtree push --prefix=项目自定义路径 子工程仓库地址 子工程分支名称
直接在子工程改动
主工程更新引入的子工程:
$ git subtree pull --prefix=项目自定义路径 子工程仓库地址 子工程分支名称
其它
在主工程中对子工程内容进行了改动,那么主工程涉及到的commit记录都会在子工程中保留。
最后
谢谢阅读。





网友评论