git patch用于将所做的修改进行打包,然后再别的分支或给别人可以直接应用该patch,达到修改复用的效果。
diff命令
git diff > xxxx.patch
git diff xx.file > xxxx.patch
git diff --cached > xxx.patch
git diff commit_id1 commit_id2 > modified.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。
————————————————---------------------------------------------------------
format-patch命令
git format-patch 详解
打包最近的一个patch:git format-patch HEAD^,有几个^就打包几个patch的内容;或git format-patch -n
git format-patch HEAD^ 有几个^就会打几个patch,从最近一次打起
git format-patch HEAD^^ 最近的二个patch内容
以下作用同上
git format-patch -1 // 打包最近的一个
git format-patch -2 // 最近的两个patch内容
打包版本n1与n2之间的patch:git format-patch -n1 -n2
某次提交以后的所有patch: git format-patch xxx,xxx是commit名
某次提交和之前的n-1次提交: git format-patch -n xxx,xxx是commit名,包含xxx在内共n次
某两次提交之间的所有patch:git format-patch xxx1..xxx2,xxx是commit名,不包括xxx1这次的patch
某两次提交之间的所有patch:git format-patch xxx1 xxx2,xxx是commit名,包括xxx1这次的patch
将所有patch输出到一个指定位置的指定文件 git format-patch xxx --stdout > xxx.patch
————————————————--------------------------------------------------------------------
apply命令应用patch
git apply --stat xxx.patch
git apply --check xxx.patch
git apply xxx.patch
将一个patch应用到Git仓库中的命令是:git apply modified.patch
不过在应用之前应该先检查patch文件:git apply --stat modified.patch
检查能否应用成功:git apply --check modified.patch
————————————————---------------------------------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)