【发布时间】:2011-02-24 10:53:36
【问题描述】:
我正在尝试将我上次推送到 svn 服务器后的所有更改合并为一个大补丁,我可以通过电子邮件发送给我的同事以供审查。我可以用git format-patch 做到这一点吗?
【问题讨论】:
我正在尝试将我上次推送到 svn 服务器后的所有更改合并为一个大补丁,我可以通过电子邮件发送给我的同事以供审查。我可以用git format-patch 做到这一点吗?
【问题讨论】:
您可以使用git format-patch origin/master 获取所有补丁,因为您当前的分支是从服务器分叉的。 (假设 HEAD 是命令中的最后一个参数,所以你得到的是origin/master..HEAD。)
但是,正如 VonC 所暗示的,这可能会创建大量文件:您所做的每一次提交都会创建一个 .patch 文件!如果您只需要一个大补丁文件,他提到的git-diff 语法应该可以解决问题。 (git diff origin/master.. > bigpatch.patch 将为您提供自您的 HEAD 和服务器的共同祖先以来的所有更改。)
【讨论】:
对于处理一个文件,git diff更合适(对于文本文件的补丁)
git diff R1..R2 > patchR1R2.diff
【讨论】: