diff和patch簡單使用

2021-05-22 12:44:46 字數 1223 閱讀 6518

上面的兩個資料夾不同之處是前者有乙個aa.txt檔案,另外修改了cpu/s3c44b0/cpu.c檔案

一共有這兩處不同,下面來使用diff進行建立補丁包:

退到兩者的上一級目錄,執行diff -nur u-boot-1.3.1/ u-boot-1.3.0/ > test.patch

引數解釋:

-r  --recursive  recursively compare any subdirectories found.遞迴各級目錄

-n  --new-file  treat absent files as empty.對待缺失檔案方式(像aa.txt,乙個目錄有該檔案,乙個目錄沒有,這樣沒有該檔案的那個目錄把aa.txt看作有這個檔案,但內容為空)

-u統一格式

現在有了補丁包我們怎麼打補丁呢,先看一下補丁包的內容

diff -nur u-boot-1.3.1/aa.txt u-boot-1.3.0/aa.txt

--- u-boot-1.3.1/aa.txt 2010-03-27 08:26:03.000000000 +0800

+++ u-boot-1.3.0/aa.txt 1970-01-01 08:00:00.000000000 +0800

@@ -1 +0,0 @@

-hhhhhhhhhhhhhhhhhhhhhhhh

diff -nur u-boot-1.3.1/cpu/s3c44b0/cpu.c u-boot-1.3.0/cpu/s3c44b0/cpu.c

--- u-boot-1.3.1/cpu/s3c44b0/cpu.c      2010-03-27 08:19:01.000000000 +0800

+++ u-boot-1.3.0/cpu/s3c44b0/cpu.c      2010-03-27 08:37:34.000000000 +0800

@@ -32,6 +32,15 @@

#include

#include

+/*+this is test

+*/+void test()++

+加入我們進入u-boot-1.3.0這個目錄,我們可以執行

patch -p1 < test.patch

這樣我們就打上了補丁啦,這裡為什麼要是p1呢?1是指把u-boot-1.3.0給過濾掉,就是說補丁是從這個目錄下開始的。

如果我們打完補丁以後發現又不想要這個補丁了,怎麼辦呢?執行patch -p1 -r < test.patch刪除補丁就可以啦

diff和patch使用指南

diff和patch是一對工具,在數學上來說,diff是對兩個集合的差運算,patch是對兩個集合的和運算。diff比較兩個檔案或檔案集合的差異,並記錄下來,生成乙個diff檔案,這也是我們常說的patch檔案,即補丁檔案。patch能將diff檔案運用於 原來的兩個集合之一,從而得到另乙個集合。舉...

patch和diff使用說明

diff和patch是一對工具,在數學上來說,diff是對兩個集合的差運算,patch是對兩個集合的和運算。diff比較兩個檔案或檔案集合的差異,並記錄下來,生成乙個diff檔案,這也是我們常說的patch檔案,即補丁檔案。patch能將diff檔案運用於 原來的兩個集合之一,從而得到另乙個集合。舉...

diff和patch使用指南

diff和patch是一對工具,在數學上來說,diff是對兩個集合的差運算,patch是對兩個集合的和運算。diff比較兩個檔案或檔案集合的差異,並記錄下來,生成乙個diff檔案,這也是我們常說的patch檔案,即補丁檔案。patch能將diff檔案運用於 原來的兩個集合之一,從而得到另乙個集合。舉...