diff命令
-行数 指定要显示多少行的文本。此参数必须与-c或-u参数一并使用。
-a 所有的文件都视为文本文件来逐行比较, 包括二进制文件。
-b或--ignore-space-change 不检查空格字符的不同。
-B或--ignore-blank-lines 不检查空白行。
-N或--new-file 将缺失的文件当作空白文件处理
-p 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称。
-q或--brief 仅显示有无差异,不显示详细的信息。
-r或--recursive 递归处理目录
-s或--report-identical-files 若没有发现任何差异,仍然显示信息。
-u,-U或--unified= unified模式输出。
-w或--ignore-all-space 忽略全部的空格字符。
创建patch 使用diff -Naur old new > patchfile.patch
patch命令
patch 是一个可以将 diff 生成的补丁应用到源文件,生成一个打过补丁版本的文件。
常用参数:
-i 指定补丁文件
-pNum 剥离文件名中的前num个目录成分.总的来说,从路径最开始删除路径分隔符(/)及其之前的所有字符,每次加1,直到剩下的部分存在于当前工作目录中,最后得到的就是p级别。
-E 删除应用补丁后为空文件的文件
-o 输出到一个文件而不是直接覆盖文件
patch < patchfile 应用补丁
patch -R < test.patch 撤销补丁
git diff -p > file.patch # git生成patch
git应用patch
- git apply --stat file.patch 检查patch文件
- git apply --check file.patch 检查是否能应用成功
- git apply xxx.patch 打补丁