git am 打patch - 1.单个文件打patch

利用git am打patch - 单个文件打patch

1.单个文件打patch:

(1)检查patch文件:

        git apply --stat    0001-test1.patch

(2)检查能够应用成功:

        git apply --check    0001-test1.patch

        如果有冲突,编辑patch解决冲突。比如:

        (a) 报No such file or directory, 可以编译patch中的路径为正确路径;

(3)打patch:

        git am 0001-test1.patch

 

 

 

可能产生冲突的地方,及修改:

可能产生冲突的地方:

(1) 路径名变了:

    修改成对应的路径名

(2) 文件权限不对,修改patch中的文件权限

(3) 同一个文件中,有两个块,只需要修改一个块: 删除另一个块的修改。

(4) 块中的修改,只需要其中的一个处: 删除不需要的修改,并更正@@后块对应的新旧行号,增删未变更的内容

---------------

附录:

生成patch的方法:

git format-patch

$ git format-patch HEAD^       #生成最近的1次commit的patch

$ git format-patch HEAD^^     #生成最近的2次commit的patch

$ git format-patch HEAD^^^      #生成最近的3次commit的patch

$ git format-patch HEAD^^^^     #生成最近的4次commit的patch

$ git format-patch <r1>..<r2>                #生成两个commit间的修改的patch(包含两个commit. <r1>和<r2>都是具体的commit号)

$ git format-patch -1 <r1>                     #生成单个commit的patch

$ git format-patch <r1>                          #生成某commit以来的修改patch(不包含该commit)

$ git format-patch --root <r1>      #生成从根到r1提交的所有patch

 

为什么使用git format-patch 和git am?

使用git format-patch获得的patch包含code修改以及commit信息。

优点:

1. 方便,涉及到多个文件的改动时,能够记录所有的改动

2. patch 包含 commit 信息。

3. 获取patch 灵活。


 

----------------

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值