Git的patch相關操作
阿新 • • 發佈:2021-07-18
獲取 patch
最簡單的命令是:
git diff > modified.patch
這樣將git diff
的輸出放在一個檔案中,而diff的輸出就是修改的補丁,是tracked
的檔案的修改記錄(相對於commit在庫中的修改)。
如果有新增的檔案,並不在Git管理之內,也就是還沒有commit在倉庫中的檔案,執行如下:
git diff --cached > modified.patch
如果還包含二進位制檔案,例如圖片等
git diff --cached --binary > modified.patch
對某個commit生成patch
先用git log
找到兩個commit記錄的簽名,然後利用:
git diff xxxxx yyyyy > modified.patch
這裡xxxxx和yyyyy分別是兩個commit的簽名。
應用 patch
將一個patch應用到Git倉庫中的命令是:
git apply modified.patch
不過在應用之前應該先檢查patch檔案:
git apply --stat modified.patch
檢查能否應用成功:
git apply --check modified.patch
打補丁:
git am --signoff < modified.patch
使用-s或--signoff選項,可以commit資訊中加入Signed-off-by資訊