Diff和patch
diff
按“行”比较两个文件的差异。可以比较文件或目录。
option:
-c
: 完整的显示两个文件不同行的上下文-c -C num
: 显示上下文的行数,默认为 3-u
: 以 unified 格式显示不同-u -U num
: 显示上下文的行数,默认为 3-p
: 如果不同在函数中,则提示所在函数名-r
: 递归的比较所有子目录-N
: 视不存在的文件为空文件来比较-x PATTERN
: 忽略 PATTERN 匹配的文件
例如,比较 compdir01 和 compdir03 两个文件夹,忽略其中的 .patch
文件:
-X patternfiles
: 忽略 patternfiles 文件中指定的所有 PATTERN
生成一个 patch:
patch
打 patch:
其中 N 为需要剥掉的文件名中的目录级数
例如,compdir.patch
文件中指明的文件名为:
而 backtrace.c
文件在 /home/yourname/compdir01/
目录下
那需要将 patch 拷贝到 /home/yourname/
目录下,然后执行
即剥掉 patch 文件中的 /home/myname/personale/
前缀。
或者将 patch 拷贝到 /home/yourname/compdir01/
目录下,然后执行
即剥掉 patch 文件中的 /home/myname/personale/compdir01/
前缀。
记住,打 patch 的时候不要过分依赖 patc h命令,打完之后一定要检查代码。另外,尽量在原始项目中打 patch,避免冲突。