git subtree
1.在A项目中添加一个远程连接如下:
git remote add subtree-origin git@github.com:xxx/xxx/x.git
2.使用subtree命令添加需要依赖的远程仓库
git subtree add --prefix=subtree(目录) subtree-origin master
该命令解释如下:
从subtree-origin这个远程地址拉取master分支到本地的subtree目录
3.在parent项目里拉取子模块
git subtree pull --prefix=subtree subtree-origin master --squash
# 此命令为:拉取subtree-origin上的master分支到本地的subtree上
--squash :
无此参数,则会把子模块的所有提交记录一条一条的拉取过来,在去穿件一个合并提交,
有此参数,则把所有子模块的所有提交记录合并为一条提交,在把合并的提交merge到当前分支上,所以到时候在主项目上会多出来两个提交,子模块远程提交历史在本地上就没有了。
4.在parent项目里修改child模块并将对child相关的修改推送到parent的远程仓库和child本身的远程仓库
git subtree push --prefix=subtree subtree-origin master
命令意思使用git subtree push命令把对本地subtree的修改推送到远程subtree-origin 的master分支上。
网友评论