實現要求
有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