如果你的codebase工作環境沒有使用git作管理, 你要怎麼做從git產生的patch呢?

首先要先知道diff 與 patch 的關係, 傳統的linux裡面, .patch檔案是透過diff產生的

Diff 和 Patch 的簡易操作使用筆記

:

(參考: Tsung’s Blog)

diff -Naur file1 file2 > project.patch # Diff 產生 patch, 檔案, 資料夾都可以

# 或 diff -Naur dir1 dir2 > project.patch # Diff 產生 patch

patch -p0 < project.patch # 將 patch 寫入

patch -p0 < project.patch # 再做一次會詢問是否自動加上 -R 來移除之前 patch 寫入的(恢復回上一步的資料)

patch -R -p0 < project.patch # 移除回復修改 (同上一步驟, 此次就是確定要移除上次的 project.patch)

反正就是

造著傳統方式以 “patch -p0

然後會跳出 “File to patch:” 要求你輸入該檔的位置

你就複製貼上出現的檔案相對路徑與檔名, 直接輸入下去就好了

實際舉例如下 :

can’t find file to patch at input line 79

Perhaps you used the wrong -p or –strip option?

The text leading up to this was:

————————–

|diff –git a/user/hal/user/xxxxx.h b/user/hal/user/xxxxx.h

|index 0a3889f..9c92c36 100644

|— a/user/hal/user/xxxxx.h

|+++ b/user/hal/user/xxxxx.h

————————–

File to patch: user/hal/user/xxxxx.h <===複製上面貼到這裡

patching file user/hal/user/xxxxx.h

PS: 如果你有用git管理自己的codebase

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐