Patch和Git打补丁学习笔记

本文详细介绍了Linux patch命令的使用,包括对单个文件和整个文件夹的打补丁方法,以及常见选项的含义。同时,文章还探讨了Git下的打补丁方式,如git format-patch和git diff,以及如何处理打补丁冲突。此外,还提供了patch命令的详细参数介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Linux patch命令

Linux patch命令用于修补文件。

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

 

2.Patch命令常用方法

是指在不使用Git工具的情况下,进行打补丁的操作,【单纯】地使用【patch和diff】这一对命令。

2.1patch命令常用选项含义

  • -r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。
  • -N 选项确保补丁文件将正确地处理已经创建或删除文件的情况。
  • -u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
  • -p0 选项从当前目录查找目的文件(夹)(直接使用补丁文件里面指定的路径)
  • -p1 选项忽略掉第一层目录,从当前目录查找(去掉补丁文件指定路径最左的第1个'/'及前面所有内容)。
  • -E  选项说明如果发现了空文件,那么就删除它。
  • -R  选项说明在补丁文件中的“新”文件和“旧”文件现在要调换过来了(实际上就是给新版本打补丁,让它变成老版本)
  • --dry-run:尝试运行打补丁,会显示执行的结果,输出提示信息,但并不真正打补丁,不修改实际文件。

定向符" < " 和 " > "的含义:

  • " < "后面跟着要“删除”的内容。
  • " > "后面跟着要“增加”的内容。
  • diff命令后面如果不加 “> xxx.patch”,就是只将差异打印出来,而不添加到补丁文件。

2.2对单个文件打补丁

  • 制作补丁:diff –uN from-file to-file > xxx.patch
  • 打补丁:patch –p1 < xxx.patch    
  • 还原补丁:patch –Rp1 < xxx.patch

2.3对整个文件夹打补丁

  • 制作补丁:diff –uNr from-docu to-docu > xxx.patch 
  • 打补丁:patch –p1 < xxx.patch 
  • 还原补丁:patch –Rp1 < xxx.patch 

 

3.Git下的打补丁

Git 提供了两种补丁方案,一是用git diff生成的UNIX标准补丁.diff文件,二是git format-patch生成的Git专用.patch 文件。

.diff文件只是记录文件改变的内容,不带有commit记录信息,多个commit可以合并成一个diff文件。

.patch文件带有记录文件改变的内容,也带有commit记录信息,每个commit对应一个patch文件。

在Git下,我们可以使用.diff文件也可以使用.patch 文件来打补丁。

使用 【git log 】命令 可以查看 commit ID,commit ID 会比较长&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值