生成patch

本地未提交修订生成patch

git diff > abc.patch

从git log生成patch

git format-patch HEAD^       #生成最近的1次commit的patch
git format-patch HEAD^^      #生成最近的2次commit的patch
git format-patch HEAD^^^     #生成最近的3次commit的patch
git format-patch HEAD^^^^    #生成最近的4次commit的patch
git format-patch <c1>..<c2>  #生成两个commit间的修改的patch(生成的patch不包含c1. <c1>和<c2>都是具体的commit号)
git format-patch -1 <c1>     #生成单个commit的patch
git format-patch <c1>        #生成某commit以来的修改patch(不包含该commit)
git format-patch --root <c1> #生成从根到c1提交的所有patch

校验patch

git apply --stat abc.patch  # 查看patch的情况
git apply --check abc.patch # 检查patch是否能够打上,如果没有任何输出,则说明无冲突,可以打上。

应用patch

应用patch后自动生成commit:

git am abc.patch

仅应用patch:

git apply abc.patch
git apply --reject abc.patch  # 强制patch