1 概述
更新檔主要用于更新代碼時不用重新下載下傳源碼,隻下載下傳更新檔,然後再原代碼上将這些更新檔打上就得到了更新後的代碼。
2 生成更新檔
windows 下對比檔案:

生成更新檔檔案
mypatch
:
// u: Unified模式;p: 顯示代碼所在 c 函數資訊;r: 遞歸對比下面的子目錄;N: 如果檔案缺少,就當做空檔案來對比
/mnt/hgft/Linux/patch$ diff -uprN original/ modify/ > mypatch
/mnt/hgft/Linux/patch$ ls
modify mypatch original
/mnt/hgft/Linux/patch$ cat mypatch
diff -uprN original/file modify/file
--- original/file 1970-01-01 08:00:00.000000000 +0800
+++ modify/file 2018-12-18 21:49:31.278448300 +0800
@@ -0,0 +1,10 @@
+A=160
+B=75
+D=80
+E=105
+F1=73
+F2=146
+G=72
+H=70
+K=70
+J=80
\ No newline at end of file
diff -uprN original/first/first.c modify/first/first.c
--- original/first/first.c 2018-12-18 21:47:42.075202200 +0800
+++ modify/first/first.c 2018-12-18 21:50:43.558582500 +0800
@@ -2,5 +2,5 @@
int first(void)
{
- printf("it is the first function\n");
+ printf("itrst function\n");
}
\ No newline at end of file
diff -uprN original/first/readme modify/first/readme
--- original/first/readme 2018-12-18 21:48:50.850135900 +0800
+++ modify/first/readme 1970-01-01 08:00:00.000000000 +0800
@@ -1,8 +0,0 @@
-it is the file name.
-use to test patch
-source
-diff
-patch
-rtyu
-tuya
-yunem
diff -uprN original/main.c modify/main.c
--- original/main.c 2018-12-18 21:46:35.541396700 +0800
+++ modify/main.c 2018-12-18 21:49:59.380055600 +0800
@@ -2,5 +2,5 @@
int main(int argc, char **argv)
{
- printf("it is the main\n");
+ printf("it is thain\n");
}
\ No newline at end of file
diff -uprN original/readme modify/readme
--- original/readme 2018-12-18 21:49:31.278448300 +0800
+++ modify/readme 2018-12-18 21:50:26.148586700 +0800
@@ -2,9 +2,7 @@ A=160
B=75
D=80
E=105
-F1=73
-F2=146
-G=72
+
H=70
K=70
J=80
\ No newline at end of file
3 打更新檔
/mnt/hgft/Linux/patch$ cd original
/mnt/hgft/Linux/patch/original$ patch -p1 < ../mypatch // -p1:表示忽略第1級目錄
patching file file
patching file first/first.c
patching file first/readme
patching file main.c
patching file readme
打更新檔之後檔案對比: