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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章