git 补丁
Git 提供了两种补丁方案:
(1)用 git diff 生成的UNIX标准补丁.diff文件:.diff文件只是记录文件改变的内容,不带有commit记录信息,多个commit可以合并成一个diff文件。
(2)用 git format-patch 生成的Git专用.patch 文件:.patch文件带有记录文件改变的内容,也带有commit记录信息,每个commit对应一个patch文件。
创建 patch 文件:
git format-patch 2a2fb4 -2
git format-patch 2a2fb4 89aebe
git diff 2a2fb4 89aebfc > xxx.diff
应用 patch 文件:
git apply --check path/to/xxx.patch
git apply path/to/xxx.patch
git apply --check path/to/xxx.diff
git apply path/to/xxx.diff
git apply --check 后有冲突的解决方法:
(1)首先使用以下命令行,自动合入 patch 中不冲突的代码改动,同时保留冲突的部分:
git apply --reject path/to/xxxx.patch
同时会生成后缀为 .rej 的文件,保存没有合并进去的部分的内容。
(2)解决完冲突后,删除后缀为 .rej 的文件,并执行 git add . 添加改动到暂存区。
(3)接着执行 git am --resolved 或者 git am --continue