【发布时间】:2011-09-17 13:22:55
【问题描述】:
假设有两个分支,master 和slave,它们编辑同一个文件和同一行。最初,文件的内容是
foo bar
然后在分支slave它被编辑成
foo bar baz
现在分支slave 的用户格式化补丁(git format-patch master)并将其发送给分支master 的用户。同时,在master分支中编辑了同一个文件,变成了
foo bar spam eggs
补丁无法应用,master 要求slave 合并并制作新补丁。当master 合并到slave 并解决冲突时,是时候重新格式化补丁了。提交图如下所示:
slave: master:
foo bar baz spam eggs
| \
| \
| foo bar spam eggs
| |
foo bar baz |
\ |
\ |
+--------- foo bar
slave 上的最新提交(合并)如下所示:
@@@ -1,1 -1,1 +1,1 @@@
- foo bar baz
-foo bar spam eggs
++foo bar baz spam eggs
但是,如果我们现在运行 git format-patch master,我们仍然会得到与以前完全相同的补丁,其中不考虑合并和冲突解决:
@@ -1 +1 @@
-foo bar
+foo bar baz
如何格式化适用于最新母版的补丁?我想不使用rebase。
更新:git format rev1..rev2,其中rev1 和rev2 分别是master 和custom 分支的负责人,不包括与冲突解决相关的更改。 git-diff 格式化一个有效的补丁,但忽略提交消息。
【问题讨论】:
标签: git merge format-patch