1,
//生成從當前commit往前x個commit的patch文件
git format-patch -x
//默認有幾個commit就會生成幾個.patch文件,并且默認文件名從最早提交的commit 0001編號
//生成從指定commit_id(包含該commit) 往前x個commit的patch文件
git format-patch commit_id -x
//單獨生成某個commit的patch
git format-patch commit_id -1
//當然也可以將所有commit的差異合并到一個patch文件,方便使用
git format-patch -x --stdout > patch-name.patch
//生成兩個commit之間的所有commit的patch文件(不包含start_commit):
git format-patch start_commit_Id..end_commit_Id
2,
//檢查patch文件
git apply --stat xxx.patch
//檢查能否應用成功
git apply --check xxxx.patch
使用git am xxx.patch可以應用指定patch文件
//使用模式匹配git am *.patch會自動根據(jù)編號依次應用所有的patch文件(所以生成patch的編號自動安裝提交先后生成)
git am *.patch
//使用git apply 命令也可以應用patch(多用于.diff文件)但是相比于am命令不會將commit信息加入
3,
//am 應用patch有沖突,則會提示命令用于查看沖突具體
git am --show-current-patch
//以及用于跳過、繼續(xù)或者終止am命令
git am --continue
git am --skip
git am --abort
//使用git am -3 xxx.patch可以在發(fā)生沖突時使用git mergetool調(diào)用沖突合并工具解決沖突
git am -3 *.patch
git mergetool