git format-patch和git diff 区别,想要的到底是哪种!

打补丁两种方式

format-patch 和diff 两种方式网上一大堆复制粘贴,无非把git手册到处复制粘贴,自己动手截个图的没一个,我来补充一下吧。

git format-patch commit1 commit2

输出到一个文件

git format-patch android12-5.10-2022-10_r5 android12-5.10-2022-10_r7 --stdout > kernel333.diff

输出到指定目录:

git format-patch android12-5.10-2022-10_r5 android12-5.10-2022-10_r7 -o ../now

然后

git am *.patch
因为肯定是一堆patch,需要批量打入。看下面。

git diff

git diff android12-5.10-2022-10_r5 android12-5.10-2022-10_r7 > kernel.diff
git dpply xxx.diff

format-patch 的坑,not recommend!

git format-patch 会生成一大堆patch,如下图,至今不知道原理是啥,明明两次提交之间没有那么多修改,很离谱,网上看到一些说是会将提交日志,作者,日期也生成patch,但是也不可能这么多啊
明明只是最近两次提交,都会生成一大堆,
但是使用
git format-match HEAD^ 这种确实只会生成一个

在这里插入图片描述

总结

我觉得我们需要的只是
git diff commit1 commit2 > kernel.diff,把两次提交之间改动保存到一个文件
看下图
在这里插入图片描述

然后git apply 就行

猜你喜欢

转载自blog.csdn.net/weixin_40557160/article/details/129181400