当前位置:   article > 正文

Git subtree_git subtree基于指定commit拉子仓库

git subtree基于指定commit拉子仓库

原始的visoc(父项目)项目结构是下图这样的:

子项目router是这样的:

在父仓库中新增子仓库

我们执行以下命令把router添加到visoc中:

git subtree add --prefix router git@github.com:Dovar66/Router.git master --squash

(--squash表示不拉取历史信息,而只生成一条commit信息)

然后执行git push把修改推送到远端visoc仓库,现在本地仓库与远端仓库的目录结构为:

当我们在visoc中修改router文件夹下的内容后执行git push,将会把修改push到visoc上,但不会推送到router仓库。

从源仓库拉取更新

如果router仓库更新了,visoc里的router如何拉取更新?使用git subtree pull如下

git subtree pull --prefix router git@github.com:Dovar66/Router.git master --squash

推送修改到源仓库

如果在visoc仓库里修改了router,然后想把这个修改推送到源router仓库呢?使用git subtree push如下:

git subtree push --prefix router git@github.com:Dovar66/Router.git master

简化git subtree命令

这里我们把子仓库的地址作为一个remote,方便记忆:

git remote add -f router git@github.com:Dovar66/Router.git

然后可以这样来使用git subtree命令:

git subtree add --prefix router router master --squash

git subtree pull --prefix router router master --squash

git subtree push --prefix=router router master

引用子项目的组件

visoc是个完整的android项目,router也是一个完整的android项目,那么visoc怎么引用到router下的module呢?如下图

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/861286
推荐阅读
相关标签
  

闽ICP备14008679号