git subtree 的使用

参考:
Git Tools - Subtree Merging
The power of Git subtree
git subtree用法
About Git subtree merges

应用场景

两个项目共用一部分代码,把这部分抽象出来,作为 subtree

如何添加 subtree

  • git remote add -f <子仓库名> <子仓库地址>
git remote add -f cloudwood-common https://github.com/yunlaiwu/cloudwood-common.git

解释:其中-f意思是在添加远程仓库之后,立即执行fetch。

我这里没有加 -f 参数,所以要手动 fetch
  • git subtree add --prefix=<子目录名> <子仓库名> <分支> --squash
git subtree add --prefix=cloudwood-common cloudwood-common master --squash

解释:–squash意思是把subtree的改动合并成一次commit,这样就不用拉取子项目完整的历史记录。–prefix之后的=等号也可以用空格

执行完这步后就可以看到项目目录下已经出现了子目录

从远程仓库更新子目录

  • git fetch <远程仓库名> <分支>
git fetch cloudwood-common master
  • git subtree pull --prefix=<子目录名> <远程分支> <分支> --squash
git subtree pull --prefix cloudwood-common cloudwood-common master --squash

从子目录push到远程仓库

  • 首先进到子目录,去 add 和 commit

  • git subtree push --prefix=<子目录名> <远程分支名> 分支

git subtree push --prefix cloudwood-common cloudwood-common master

进入github可以看到更新成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 项目A与项目B存在公用模块,在项目A中修改Bug或增加新功能需要同步到项目B中,由于存在区别所以还不能完全c...
    Archerlly阅读 21,059评论 3 14
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,681评论 1 26
  • 传统的人传媒体宣传方式是通过讲道造谣的口耳相传,书本传播等渠道,越传越神,各种成功的套路跟赌坊千门是一个概念,人们...
    杰杰6889阅读 159评论 0 0
  • 最近忙的不可开交,身心疲惫,所以长时间没更新。用mac有一段时间了,在使用中发现些不可或缺的应用。不啰嗦,列清单(...
    小兔矶阅读 849评论 0 0
  • 坐标,吉林省通化市 端午小长假即将开始,我们还是提前半天回到东哥老家通化。这个城市,对我的吸引,除了东哥,必须要从...
    D055小倩阅读 1,280评论 2 5