如果應(yīng)用了某一個(gè)補(bǔ)丁之后想恢復(fù)原來的文件,那么使用參數(shù) -R,例如:
1. 首先打了一個(gè)補(bǔ)丁
$ patch -p1 < my.patch
2 然后想恢復(fù)原來的文件,那么
$ patch -R -p1 < my.patch
如果要為多個(gè)文件制作補(bǔ)丁,那么可以使用 git 來快速生成,因?yàn)?git 是一個(gè)局部目錄的庫,所以不會(huì)有多余開銷。
1.創(chuàng)建 git
$ cd src
$ git init
2.添加需要制作補(bǔ)丁的文件,或者全部添加
$ git add *
或者
$ git add *.c
3. 提交原始文件
$ git commit -a -m'init'
4. 修改源文件
。。。
5. 創(chuàng)建補(bǔ)丁
$ git diff > my.patch
這樣創(chuàng)建的補(bǔ)丁文件目錄會(huì)自動(dòng)增加一個(gè)前綴 a/ b/,例如
diff --git a/Makefile.in b/Makefile.in
index e548e99..c019753 100644
--- a/Makefile.in
+++ b/Makefile.in
這時(shí)候應(yīng)用補(bǔ)丁的時(shí)候需要到包的根目錄,使用 -p1 選項(xiàng)
$ patch -p1 < my.patch
如果不想在文件名前面增加前綴,那么使用選項(xiàng) --no-prefix
$ git diff --no-prefix > my.patch
生成的補(bǔ)丁頭如下,沒有了文件目錄的前綴
diff --git Makefile.in Makefile.in
index e548e99..c019753 100644
--- Makefile.in
+++ Makefile.in
用這個(gè)打補(bǔ)丁的時(shí)候就需要使用 -p0 選項(xiàng)
$ patch -p0 < my.patch
聯(lián)系客服