从多个单独的特定提交中获取更改的git diff?

时间:2014-07-23 23:27:02

标签: git

git log(反向时间顺序)显示:

承诺eeee
commit dddd
提交cccc
提交bbbb
承诺aaaa

我想从提交bbbb,dddd和eeee生成补丁文件。

我可以通过git diff aaaa bbbb为bbbb创建一个,我可以通过git diff ccccgit diff cccc eeee为dddd和eeee创建一个。

如何创建一个包含这三个提交的更改但不提交cccc的补丁文件?

谢谢!

2 个答案:

答案 0 :(得分:1)

$git log复制2-3个不同提交的sha id,然后使用这些sha-id运行git diff命令。

$git diff (sha-id one) (sha-id two)  -- path/to/file

答案 1 :(得分:0)

您可以执行以下操作来创建补丁文件:

for hash in bbbb dddd eeee; do git diff $hash^..$hash; done > patchfile

然后使用:

应用它
patch -p1 < patchfile