在 Linux 中使用 diff
和 patch
本文档提供了如何在 Linux 中使用 diff
和 patch
工具来生成和应用补丁的指导,以及如何手动编辑这些补丁以排除某些更改。
生成补丁文件
使用 diff
生成补丁文件,可以比较两个文件并将差异输出到补丁中。例如:
diff -u original_file.c modified_file.c > changes.patch
-u
选项生成一种统一格式,这种格式更易于阅读和理解。
应用补丁文件
使用 patch
应用补丁文件,可以使用以下命令:
patch original_file.c changes.patch
这将把 changes.patch
中的修改应用到 original_file.c
上。
编辑补丁文件
补丁文件是纯文本,可以手动编辑。这对于移除或修改不需要的更改非常有用。
补丁文件结构
典型的补丁文件看起来像这样:
--- original.c 2021-07-01 12:00:00.000000000 +0200
+++ modified.c 2021-07-01 12:30:00.000000000 +0200
@@ -1,5 +1,5 @@
int main() {
- printf("Hello, world!
");
+ printf("Hello, universe!
");
return 0;
}
- 以
-
开始的行表示删除。 - 以
+
开始的行表示添加。
修改补丁
要排除特定修改,删除或注释掉相应的行:
--- original.c 2021-07-01 12:00:00.000000000 +0200
+++ modified.c 2021-07-01 12:30:00.000000000 +0200
##@@ -1,5 +1,5 @@
## int main() {
##- printf("Hello, world!
##");
##+ printf("Hello, universe!
##");
## return 0;
## }
应用修改后的补丁
编辑后,像往常一样应用补丁:
patch original.c changes.patch
本文档概述了 diff
和 patch
工具的基本使用,这些工具对于高效管理代码更改至关重要。