git subtree

git subtree

1.在A项目中添加一个远程连接如下:

git remote add subtree-origin [email protected]: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分支上。

你可能感兴趣的:(git subtree)