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 会比较长&