Git补丁简单用法介绍(打补丁.diff 和 .patch 和 git apply、git am应用)

打补丁.diff 和 .patch 和 git apply、git am应用


生成patch
git format-patch -M master
生成指定patch,afc425592dc7dde9317d729d8c65206cfea749fc是commit id,-1是指从当前id开始,向下提交次数,包含此次且计数从1开始。
也就是说,我想要打出afc425592dc7dde9317d729d8c65206cfea749fc当前的patch,则命令如下:
git format-patch -1 afc425592dc7dde9317d729d8c65206cfea749fc 或者 git format-patch afc425592dc7dde9317d729d8c65206cfea749fc -1
想要打出afc425592dc7dde9317d729d8c65206cfea749fc和它之前的一次提交的patch,则命令如下:
git format-patch -2 afc425592dc7dde9317d729d8c65206cfea749fc 或者 git format-patch afc425592dc7dde9317d729d8c65206cfea749fc -2
生成diff:
git diff (id1) (id2) --binary --(path) > 目标文件路径
比如要生成frameworks/base/下的diff,保存到~/gittest/下的f_b.diff:(注意:旧的id1在前)
git diff afc425592dc7dde9317d729d8c65206cfea749fc  32e81b8365c29c769cdf1294520fdbbbf431fea9 --binary -- frameworks/base/ > ~/gittest/f_b.diff


打入 patch / diff
git apply xxx.patch
git apply xxx.diff
检查 patch / diff:
git apply --check xxx.patch
git apply --check xxx.diff
若git和需要打patch的文件不在一个目录:
如: (patch在framework下,patch要打入frameworks/base/下)
git apply --check --directory=base/ xxx.patch
git apply --directory=base/ xxx.patch
 


版权声明:本文为zhanghao_Hulk原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。