git diff 利用打patch的方式移植分支间的改动

开发过程中,我们需要了解当前每个改动。在版本控制系统中用来显示两个版本之间差别的操作,我们称之为“diff” 或者“patch”补丁

执行git add之后,提交的改动就是在暂存区
git diff 指工作目录下的改动,即工作目录树与暂存区之间的区别
git diff –cached 指暂存区与版本库最后一个版本的区别(用来查看执行git add后保存的改动)
git diff HEAD 指工作目录树(暂存区与非暂存区)与版本库最后一个版本的差别

比较两个分支: git diff branch1 branch2
如果我们想要把其中一个分支branch2的改动打包到分支branch1上,那就需要打补丁

git diff branch1 branch2 > diff.patch

然后将上面补丁应用到branch1上

git checkout branch1
git apply diff.patch

如果没有冲突,上面就可以将branch2上完整的改动移植到branch1了,但是操作过程中可以会有冲突,会提示下面错误
这里写图片描述

然后在网上搜索,根据补丁中的二进制文件 打补丁的时候添加了 –binary 的options

git diff --binary branch1 branch2 > diff.patch

但是在apply这个patch的时候还是报错了,警告patch文件里有空白字符
这里写图片描述
于是执行下面命令,求助官网说明

git apply --help

这里写图片描述

可以忽略警告,

git apply --binary --whitespace=nowarn diff.patch

这样就大功告成了

有其他错误可以参考help添加适合的options

猜你喜欢

转载自blog.csdn.net/dzkdxyx/article/details/79176089