如何找出两个git分支之间应用的所有补丁?

时间:2014-08-01 11:49:50

标签: git patch git-branch git-diff

我想找出两个git分支之间已经应用的所有补丁。我试过了  下面的命令,但这对我来说没有用。

git diff 1.6..1.4 | grep  -r  -i  --include *\.patch

如何查找两个git分支之间已提交的所有补丁?

1 个答案:

答案 0 :(得分:1)

我假设您希望<{>> {{1>}(分支/标记/修订版)和1.4之间的所有提交(< em>较新的分支/标签/修订版):

1.6

docs of git log提供了有关如何控制git log 1.4..1.6 输出的更多信息。

如果您想在命令行上但不是在图形前端中查看提交,请使用内置git log

gitk

gitk 1.4..1.6 命令不是正确选择的原因是git diff显示了修订文件的差异(即文件git difffoo.txt之间的差异和1.41.6大致显示git log1.4之间引入的提交消息。

1.6的输出只是将git diff带到1.4所需的补丁文件内容,因此您1.6 }语句将无法匹配任何内容:

grep

git diff 1.4..1.6 > patch_from_1.4_to_1.6.patch git apply patch_from_1.4_to_1.6.patch 版本上应用此修补程序后,1.41.4 文件将等于并且您的分支机构将保持此等式所需的一次提交

1.6的输出是将git log带到1.4所需的提交。要将1.6带到1.4,您可以使用1.6

git format-patch

应用这些修补程序后,基于git format-patch 1.4..1.6 # will create a set of patches that represent the commits git am -- *.patch # will apply these patches in the right sequence 的分支机构将不会拥有与<{1}}分支相同的相同文件内容,但也会保留所有提交1.41.6之间进行的。