Git subtree

原始的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呢?如下图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值