使用Git Subtree在多个项目中共用同一个子项目
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8427796.html
场景一:已有一个大项目,需要把其中一部分内容独立出来作为共用子项目,被其他项目引用
一:先分拆
cd 项目A
git subtree split -P 项目A的某个目录 -b 子项目名
cd ../
mkdir tempDir
cd tempDir
git init
git pull ../项目A 子项目名
git remote add 子目录名 子项目仓库地址
git push 子项目 -u 分支
git filter-branch -f --index-filter "git rm -r -f -q --cached --ignore-unmatch 子项目名" --prune-empty HEAD //清理掉原来的commit记录
二:再在其他项目中引用子项目
cd 项目B
git remote add 子项目源名称 子项目git地址 //添加子项目源
git subtree add --prefix 项目B中用来存放子项目的目录名 子项目源名称 分支
三:在父项目中提交对子项目的修改
git subtree push --prefix 项目B中用来存放子项目的目录名 子项目源名称 分支//提交代码
四:在父项目中拉取子项目的更新
git subtree pull --prefix 项目B中用来存放子项目的目录名 子项目源名称 分支//更新代码
场景二:将一个已有项目作为子项目,被其他项目引用
一:在git上创建一个仓库存放子项目
二:在其他项目中引用子项目
cd 项目B
git remote add 子项目源名称 子项目git地址 //添加子项目源
git subtree add --prefix 项目B中用来存放子项目的目录名 子项目源名称 分支
三:在父项目中提交对子项目的修改
git subtree push --prefix 项目B中用来存放子项目的目录名 子项目源名称 分支//提交代码
四:在父项目中拉取子项目的更新
git subtree pull --prefix 项目B中用来存放子项目的目录名 子项目源名称 分支//更新代码
参阅文献:
http://blog.csdn.net/bingshushu/article/details/51244480
https://segmentfault.com/a/1190000003969060


使用Git Subtree在多个项目中共用同一个子项目的更多相关文章
- [git]安装git-pylint-commit-hook提高python项目中的代码质量
什么是'git-pylint-commit-hook' 我在工作中,团队为了保证代码和提高代码的质量,要求每个项目都要求安装git-pylint-commit-hook,它是个钩子,会在你提交代码到本 ...
- git篇之二----团体项目中使用git
上篇说了git的简单入门,本篇来说一下在团体项目中我们该如何简单使用git 一般来说,当我们进入公司之后,就前端项目而言,若是有多个同事共同开发一个系统,我们可能会每个人去负责各自的模块. 若是人员较 ...
- 【RocketMQ】同一个项目中,同一个topic,可以存在多个消费者么?
一.问题答案 是不可以的 而且后注册的会替换前注册的,MqConsumer2会替换MqConsumer,并且只结束tag-2的消息 /** * @date 2019/05/28 */ @Compone ...
- salesforce零基础学习(九十九)Git 在salesforce项目中的应用(vs code篇)
本篇参考: https://code.visualstudio.com/docs/editor/versioncontrol https://git-scm.com/doc https://git-s ...
- git subtree模块化代码管理
Git Subtree 的原理 首先,你有两个伟大的项目——我们叫他P1项目.P2项目,还有一个牛逼的要被多个项目共用的项目——我们叫他S项目.我们通过简要讲解使用Subtree来同步代码的过程来解释 ...
- 手把手教你把 Git 子模块更新到主项目
本文以 skywalking-rocketbot-ui子模块合并到 skywalking 为例,手把手教你如何把 Git 子模块更新到主项目中去. 首先,把fork的skywalking项目克隆到本地 ...
- PHP项目中composer和Git的组合使用
highlight: 在国内由于众所周知的原因,composer的package可能无法访问,解决办法是使用中国的全镜像: composer config -g repositories.packag ...
- 使用GIT SUBTREE集成项目到子目录(转)
原文:http://aoxuis.me/post/2013-08-06-git-subtree 使用场景 例如,在项目Game中有一个子目录AI.Game和AI分别是一个独立的git项目,可以分开维护 ...
- 在VS项目中通过GIT生成版本号作为编译版本号
上一篇博客写了如何在 .Net 项目使用 SVN 作为版本控制工具时生成与代码对应的组件版本号.虽然在公司一直使用 SVN ,但我却对 GIT 情有独钟(可能要归功于那段捣鼓 ROM 的时光),但少有 ...
随机推荐
- Excel ——多表关联查询-vlookup
一.分组 需求: 在B列的右侧添加一列[消费分组]对B列的[月分组水平]进行分组,原始数据如下: 公式:在 C2 输入:“=VLOOKUP(B2,$E$1:$G$4,2,1)”,下拉填充. 提示:VL ...
- 071 SparkStreaming与SparkSQL集成
1.说明 虽然DStream可以转换成RDD,但是如果比较复杂,可以考虑使用SparkSQL. 2.集成方式 Streaming和Core整合: transform或者foreachRDD方法 Cor ...
- 用jquery设置的值,miniui.getData取不到
用jquery设置的值,miniui.getData取不到
- springmvc接受前端的参数封装成对象
前端如果传过来的是json格式的字符串,后台参数需要加@RequestBody注解. 前端如果传过来的是json对象,后台不参数需要加@RequestBody注解. $.POST({ url: url ...
- hive_连续天次计算
drop table sospdm.tmp_yinfei_yuanzuan_redbag; create table sospdm.tmp_yinfei_yuanzuan_redbag stored ...
- 最小生成树-QS Network(Prim)
题目大意: 给出的案例结果得出步骤,如下图所示,从结点1开始查找,找出的一条路径如绿色部分所标注.(关键处在于连接每条路径所需要的适配器的价格得加上去) 代码实现: #include<iostr ...
- 【基础】Equal方法、面向对象-多态-继承-封装
package Test; public class L3_1 { public static void main(String[] args) { C c1=new C(100); C c2=new ...
- Codeforces 862D. Mahmoud and Ehab and the binary string 【二分】(交互)
<题目链接> 题目大意: 有一个长度为n(n<1000)的01串,该串中至少有一个0和一个1,现在由你构造出一些01串,进行询问,然后系统会给出你构造的串与原串的 Hamming ...
- 安装win7出现安装程序无法创建新的系统分区
安装win7的时候出现“安装程序无法创建新的系统分区 也无法定位系统分区”! 我是直接把一个系统碟里面的安装文件全部拷出来.放到要安装系统的机器(D盘).用的是老毛桃的winpe已经安装好了.我的安装 ...
- Linux下 niginx部署
部署nginx 一.新建文件夹,给放文件 conf 二.写入主页文件 三.复制配置文件 四.修改配置文件80 五.修改media 六. pkill -9 ng ...