一、根據git 提交記錄生成PATCH
1、git format-patch -1 commit_id 生成git專用PATCH
如:git format-patch -1 e3faf9e06b6d1ca46d79e972ebf54daf00f68d87
生成:0001-test.patch 的補丁
2、檢查該PATCH信息
如:git apply --stat 0001-test.patch
3、檢查該PATCH是否能在指定源代碼中合入
如:git apply --check 0001-test.patch
error: zyf/FileTrans/test.txt:已經存在於工作區中
如果沒有任何輸出,則表示可合入。如有錯誤會在終端輸出。
二、合入PATCH到指定代碼庫中
1、git pull更新代碼
2、git apply 0001-test.patch 合入到本地
3、git status 查看PATCH的修改
4、git commit -m "提交說明"
5、git push origin master 將代碼推送到服務器的主分支上
三、使用diff生成通用PATCH
1、使用diff commit1 commit2 > diff.patch可以生成通用PATCH,表示從commit1到commit2(含commit2)的修改生成PATCH文件
2、使用patch -p(n) < diff.patch 合入PATCH,其中 n 代表路徑的層級
四、注意事項
推薦使用git format-patch生成git 專用PATCH,因爲我們在實際使用中發現,如果使用diff生成通用PATCH,對於刪除文件的操作會出現失敗的情況。如果沒有刪除操作的情況下diff的效率及通用性會比較好。