git apply 打补丁

一:生成patch 和打patch 

有这样的 目录层次 x/xx/xxx/xxx/test.c

我的当前位置是在 x/  下 ,执行   git diff> test.patch
在test.patch补丁文件里的路径信息是这样的:
 - - - a/xx/xxx/xxx   

+++b/xx/xxx/xxx   

如果 应用 test.patch 的时候的 位置 是在 x/ 下,

执行:

patch -p1 < test.patch
--------------------------------------

git diff> test.patch,这是产生patch的方式。

注意,使用gitdiff产生的patch都应该在执行 patch 命令时,  指定-p1,当 位置是 【在哪里制作的patch,就在哪里 执行】


 
二:

$git apply 0006-Philips-VSO-library-Report-only-the-actual-data-to-a.patch
error: patch failed: sensors-see/sensors-hal/sensors/philips_rr.cpp:81
error: sensors-see/sensors-hal/sensors/philips_rr.cpp: patch does not apply
error: patch failed: sensors-see/sensors-hal/sensors/philips_spo2.cpp:81
error: sensors-see/sensors-hal/sensors/philips_spo2.cpp: patch does not apply
 

$ git am --reject 0006-Philips-VSO-library-Report-only-the-actual-data-to-a.patch
Applying: Philips VSO library: Report only the actual data to application i.e. data[5].
Checking patch sensors-see/sensors-hal/sensors/philips_rr.cpp...
warning: sensors-see/sensors-hal/sensors/philips_rr.cpp has type 100755, expected 100644
Checking patch sensors-see/sensors-hal/sensors/philips_spo2.cpp...
Applied patch sensors-see/sensors-hal/sensors/philips_rr.cpp cleanly.
Applied patch sensors-see/sensors-hal/sensors/philips_spo2.cpp cleanly.
 

git  apply --reject  xxxx.patch 

自动合入 patch 中不冲突的代码改动,同时保留冲突的部分。这些存在冲突的改动内容会被单独存储到目标源文件的相应目录下,以后缀为 .rej 的文件进行保存。

比如对 ./test/someDeviceDriver.c 文件中的某些行合入代码改动失败,则会将这些发生冲突的行数及内容都保存在 ./test/someDeviceDriver.c.rej 文件中。我们可以在执行 git am 命令的目录下执行 find  -name  *.rej 命令以查看所有存在冲突的源文件位置。

$ git am --reject 0007-Adjust-the-touch-threshold-as-low-as-possible-to-mak.patch
Applying: Adjust the touch threshold as low as possible to make the off-body distance shorter
Checking patch sensors-see/registry/config/A4100/sdm429w_pah_8131_0.pah_8136.param_cal.json...
error: while searching for:
        "8": {
            "type": "int",
            "ver": "0",
            "data": "124328280"
        },
        "9": {
            "type": "int",
            "ver": "0",
            "data": "40961131"
        },
        "10": {
            "type": "int",

error: patch failed: sensors-see/registry/config/A4100/sdm429w_pah_8131_0.pah_8136.param_cal.json:48
error: while searching for:
            "data": "1117"
        }
    }
}
error: patch failed: sensors-see/registry/config/A4100/sdm429w_pah_8131_0.pah_8136.param_cal.json:81
Applying patch sensors-see/registry/config/A4100/sdm429w_pah_8131_0.pah_8136.param_cal.json with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Patch failed at 0001 Adjust the touch threshold as low as possible to make the off-body distance shorter
Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
git视频教程.1.Git 命令 - git help、git config.mp4 git视频教程.2.Git 命令 - git init、git clone.mp4 git视频教程.3.1.Git 命令 - git add、git status.mp4 git视频教程.3.2.Git 命令 - git diff、git difftool.mp4 git视频教程.3.3.Git 命令 - git commit.mp4 git视频教程.3.4.Git 命令 - git rm、git mv、git clean.mp4 git视频教程.3.5.Git 命令 - git reset.mp4 git视频教程.4.1.Git 命令 - git branch.mp4 git视频教程.4.2.Git 命令 - git branch.mp4 git视频教程.4.3.Git 命令 - git branch.mp4 git视频教程.4.4.Git 命令 - git checkout.mp4 git视频教程.4.5.Git 命令 - git merge.mp4 git视频教程.4.6.Git 命令 - git merge、git mergetool.mp4 git视频教程.4.7.Git 命令 - git log、git stash、git tag.mp4 git视频教程.5.1.Git 命令 - git fetch.mp4 git视频教程.5.2.Git 命令 - git pull.mp4 git视频教程.5.3.Git 命令 - git push.mp4 git视频教程.5.4.Git 命令 - git remote.mp4 git视频教程.5.5.Git 命令 - git archive.mp4 git视频教程.5.6.Git 命令 - git submodule.mp4 git视频教程.6-7.Git 命令 - git show、git shortlog、git describe、git bisect、git blame、git grep.mp4 git视频教程.8.1.Git 命令 - git cherry-pick.mp4 git视频教程.8.2.Git 命令 - git rebase.mp4 git视频教程.8.3.Git 命令 - git rebase.mp4 git视频教程.8.4.Git 命令 - git revert.mp4 git视频教程.9.Git 命令 - git applygit am、git format-patch.mp4 git视频教程.10.Git 命令 - git svn、git fast-import.mp4 git视频教程.11.Git 命令 - git gc、git fsck、git reflog.mp4 git视频教程.12.Git 命令 - 总结.mp4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值