diff 与 patch
制作补丁
diff -u $old_file $new_file > patch_file
根据单个文件制作补丁。
diff -ru $old_dir $new_dir > patch_file
根据目录制作补丁。
文件路径可以是绝对路径或者相对路径,根据场景选择。
应用补丁
patch < patch_file
应用到当前目录。
patch path/to/file < patch_file
应用到指定文件或目录。
patch -p1 < patch_file
应用到当前目录。-pN
代表跳过 patch 文件路径的前 N 层。
例如,假如文件路径为 /u/howard/src/blurfl/blurfl.c
,
-p0
对应/u/howard/src/blurfl/blurfl.c
-p1
对应u/howard/src/blurfl/blurfl.c
-p4
对应blurfl/blurfl.c
处理冲突
冲突会有提示,会产生当前文件、源文件、冲突文件三个文件,你需要手动处理。跟 git 冲突处理一致。
重复 patch
重复 patch 会提示该 patch 已经应用过。