git apply 与 git format-patch

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

  

   

猜你喜欢

转载自blog.csdn.net/baidu_40808339/article/details/108532086