多个工程,存在通用目录或文件内容
举例
工程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
记录都会在子工程
中保留。
最后
谢谢阅读。