生成patch
将本地所有修改打成补丁
git diff > /tmp/xxx.patch
将本地对某个文件的修改打成补丁
git diff test/1.txt > /tmp/1.patch
将某一次提交的修改内容打成补丁
-1表示只为单个提交创建patch,-o表示输出patch的文件夹路径,默认是用提交的message命名。
git format-patch -1 {commidid} -o /tmp
将两次提交的差异打个patch
git diff {commitid1} {commitid2} 展示的commitid2相比于commitid1发生的变化。
下方命令会将 77cef1b5 这次提交与 8f7b465b 这次提交相比发生的变化打入到1.patch文件中。
git diff 8f7b465b 77cef1b5 > /tmp/1.patch
下方命令会将 8f7b465b 这次提交与 77cef1b5 这次提交相比发生的变化打入到2.patch文件中。
git diff 77cef1b5 8f7b465b > /tmp/2.patch
校验patch
查看补丁状态,显示修改了几个文件,增加多少行,减少多少行。
git apply --stat /tmp/xxx.patch
检查补丁是否能应用到当前代码中,如果可以,下方命令返回为空。
git apply --check /tmp/xxx.patch
当校验不通过时,会提示哪个文件有冲突。
应用patch
git apply应用patch文件后,检查修改内容后,重新add,commit即可。
将补丁文件中的内容打入到当前代码中
git apply /tmp/xxx.patch