git patch用于将所做的修改进行打包,然后再别的分支或给别人可以直接应用该patch,达到修改复用的效果。
用diff获取patch
基本用法:
git diff > xxxx.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 id,yyyyy是本次提交commit id。
apply命令应用patch
将一个patch应用到Git仓库中的命令是:
git apply modified.patch
不过在应用之前应该先检查patch文件:
git apply --stat modified.patch
检查能否应用成功:
git apply --check modified.patch