git——仓库合并不丢失git记录

在开始进行仓库合并之前先大致梳理一下合并的原理,这样才能在出错的时候找到合理的解决方案。如果想直接看操作,看具体操作部分即可

场景梳理:
  • 仓库a和仓库b是并列关系,共同合并进一个新的仓库c中
  • 仓库a和仓库b是从属关系,将仓库b作为仓库a的子仓库合并
原理浅析

以上的两种场景合并原理是类似的只是在操作上略微有一点点差异。这里先说总的原理,再来分析具体的差异。

概念:为了方便理解,我们先假设需要将仓库a和b合并作为子目录合并进仓库c,以下先以这个例子进行讲解。

合并原理:

  • 设置远端: 将需要并入的仓库a和b作为远端仓库加入进目标仓库c
  • fetch: 将远端仓库a和b使用fetch拉到本地
  • 创建分支: 将拉下来的代码作为新的分支进行创建
  • 合并分支: 带参数–allow-unrelated-histories将分支a和b合并进主分支

至此,仓库a和b就保留git提交记录合并进了c。

原理在于分支合并是不丢失git提交记录的
关键点是–allow-unrelated-histories,因为这允许不相关的提交被合并。

场景差异:
刚刚说到两种场景会有一些差异,差异点在于:
如果是b作为子目录合并进a,那么b中的文件不会覆盖a,以package.json为例子来说:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值