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

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