常用的打patch操作

diff

比较文件
    用于比较文件的内容,一行一行的比较两个文件不同的地方
    
    diff 1.c 2.c 比较1.c和2.c的不同之处,显示在终端上
    <:文件1
    >:文件2
    ------:分隔符
    c:change修改
    a:add添加
    d:delete删除
    
    如果要生成补丁文件则需要将显示的结果输出重定向到以.log结尾的补丁文件中
    diff 1.c 2.c > 3.log

patch
用法:将补丁文件打补丁到需要打补丁的文件中
例如:
    patch 1.c 3.log
    
将diff 比较输出重定向的补丁文件3.log安装到1.c上
撤销打补丁:
    patch -R 1.c < 3.log

    -R:撤销打补丁

示例实操:

1.c

 

2.c

 

生成patch文件

diff 1.c 2.c > test.patch

 

给1.c打patch

patch 1.c test.patch

 

取消刚才打的patch

patch -R 1.c < test.patch

 

比较目录
比较目录文件生成补丁文件操作如下:
    -r:比较子目录文件
    -u:以合并的方式来显示文件的内容不同,同一格式输出
    -N:比较空目录时,若文件A仅出现在某个目录下,显示时,另一个目录将缺席文件视为空

1.通过比较两个目录文件,生成补丁文件
    diff -ruN dir1 dir2 > diff.txt
    
2.切换到要修改内容的目录下
    cd dir1
    
3.完成补丁操作
    patch -p1 < ../diff.txt
    -p:去除相对路径层数的数量
    
4.撤销打补丁操作
    patch -Rp1 < ../diff.txt

 

示例

patch1文件夹的文件无注释

 

patch2文件夹的文件加上注释

 

生成patch文件

diff -ruN patch1 patch2 > diff.patch

 

打patch

cd patch1

patch -p1 < ../diff.patch

查看patch1的文件

发现已经和patch2的文件一样

 

取消刚才打的patch

patch -Rp1 < ../diff.txt

 

 

在Git中,我们有几种方法可以打补丁(patch)。其中两种常用的方法是使用git am命令和git apply命令。 使用git am命令可以在打补丁的同时进行commit,因此不需要重新commit。你可以使用以下命令来打补丁: - 单个补丁文件:git am 0001-xxx.patch - 某个文件路径下的所有补丁文件:git am filepath/*.patch 而使用git apply命令则需要重新commit。你可以使用以下命令来打补丁: - 检查补丁文件:git apply --stat xxx.patch (xxx.diff) - 检查补丁能否应用成功:git apply --check xxx.patch (xxx.diff) - 打补丁:git apply xxx.patch (xxx.diff) 此外,你还可以使用git format-patch命令生成只适用于Git的patch文件,该文件包含diff信息、提交人、提交时间等。如果使用git format-patch生成的补丁无法打到当前分支,git am命令会给出相应的提示并帮助你完成打补丁的工作。 请注意,以上都是使用Git命令来进行补丁操作的方法。你可以参考官方文档来获取更详细的使用说明和参数解释 。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Patch和Git打补丁学习笔记](https://blog.csdn.net/m0_37221216/article/details/105334100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值