1,生成patch
(1)git diff (commit id1) (commit id2) --binary >diff01.diff
首先查看git log:
commit 0f8f0738fd6c2ff1826c831f56e04495063bda98
Date: Tue Jul 28 14:07:07 2020 +0800
Change-Id: I9e859ab9e2bc1ad053011e2eaf11a5b471072db6
commit bdc605552aa171fe791eee28a4ae5130547fb5ae
Date: Tue Jul 28 13:39:36 2020 +0800
Change-Id: Id3884e60b06ce17b111488353612fd529a77e92b
想生成commit 0f8f0738fd6c2ff1826c831f56e04495063bda98的patch
git diff bdc605552aa171fe791eee28a4ae5130547fb5ae 0f8f0738fd6c2ff1826c831f56e04495063bda98 --binary >diff01.diff
(2)git format-patch -M master
git log 如下:
commit 0f8f0738fd6c2ff1826c831f56e04495063bda98
Date: Tue Jul 28 14:07:07 2020 +0800
Change-Id: I9e859ab9e2bc1ad053011e2eaf11a5b471072db6
commit bdc605552aa171fe791eee28a4ae5130547fb5ae
Date: Tue Jul 28 13:39:36 2020 +0800
Change-Id: Id3884e60b06ce17b111488353612fd529a77e92b
想生成 commit 0f8f0738fd6c2ff1826c831f56e04495063bda98的patch
git format-patch 0f8f0738fd6c2ff1826c831f56e04495063bda98 -1
想生成 commit 0f8f0738fd6c2ff1826c831f56e04495063bda98 和bdc605552aa171fe791eee28a4ae5130547fb5ae 的patch
git format-patch 0f8f0738fd6c2ff1826c831f56e04495063bda98 -2
2,Apply patches
(1)git apply 0001-songtingting-bug59036-modify-perferred-network.patch
(2)察看打补丁失败的内容git apply --check 0001-songtingting-bug59036-modify-perferred-network.patch
error: 打补丁失败:packages/SettingsProvider/res/values/defaults.xml:243
error: packages/SettingsProvider/res/values/defaults.xml:补丁未应用
(3)还有一种比较彻底的方法:
git apply --reject 0001-songtingting-bug59036-modify-perferred-network.patch