参考链接:
https://blog.youkuaiyun.com/longintchar/article/details/74151042
https://blog.youkuaiyun.com/longintchar/article/details/74139933
diff使用
一般用法:
diff -Nur Oldfile Newfile > file.patch
其中
-r 为递归比较两个目录对应文件差异,
-N 为将不存在的文件视为空文件,
-u 为默认输出每个修改的前后三行。
刚开始我觉得-u参数不重要,但实验后发现,不加-u参数根本打不上patch.经观察,是否加-u参数生成的patch文件还有差异如下:
所以以后乖乖用 -Nur。
patch使用
通过输入patch --help查看用法,发现用法如此之多,有输入的,有输出的,我用到哪些再研究哪些,现仅总结我常用的。
- patch -pN < file.patch 打patch。
- patch -RpN < file.patch 复原。
注:需要通过查看patch文件中路径以及当天所在路径确定 N 的值,其描述的是当前路径深入到patch文件中所对应的第几级目录了。
举例:
其中有两个工程文件,一个是src,另外一个是src_new,src_new是src的新版本,通过diff生成patch可以窥见其改动:
注:如果当前目录在src目录,那打patch时就需要patch -p1 < …/src.patch 了。