git diff打补丁

实现要求

有2个分支master、dev

dev commit > master 10次

需要通过设置时间的方式给master打一个补丁

 

操作步骤

1)因为需要反复操作,有些action是不可少的

$ git reset --hard 000135833zaaafs3123213124124125

$ git push -f

这2步的意思是本地代码库重置到commit的xxx版本

强推到服务器

2)Dev打diff,找出2个commit之间的差异

$ git diff 000135833zaaafs3123213124124125 74331401589jkldadamdm13 > patch.dff

diff command:

param1:旧的commit,必须是在master拥有的起点。

例如Dev --> 1-20      Master -->1-5    ,需要合并Dev的6-20,则param1起点就是Master的5

param2:commit终点

param3:生成文件名

3) Master合并代码

$ git apply --check patch.diff

$ git apply patch.diff

首先执行下--check查看是否有错误,没有错误会提示空行

然后合并diff到本地代码

可能会存在LF换行问题,详情见:https://www.jianshu.com/p/2a46dfd3705a

windows下git config --global core.autocrlf 设置成false,apply会执行失败。

4)Master代码提交

$ git add .

delete mode 100544 src/main/java/..........................
delete mode 100544 src/main/java/..........................
delete mode 100544 src/main/java/..........................
delete mode 100544 src/main/java/..........................
delete mode 100544 src/main/java/..........................

$ git commit --date="Feb 20 9:15:30 2020 +0800" -am "代码提交"

$ git push

因为会有新增和删除的文件,所以执行的是add .,全部添加到缓冲区

按照需求时间执行commit

提交到服务器

 

Note:

不要直接干Master,先创建几个测试分支练习,待成功再去操作master

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值