我想找出两个git分支之间已经应用的所有补丁。我试过了 下面的命令,但这对我来说没有用。
git diff 1.6..1.4 | grep -r -i --include *\.patch
如何查找两个git分支之间已提交的所有补丁?
答案 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 diff
与foo.txt
之间的差异和1.4
)1.6
大致显示git log
和1.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.4
和1.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.4
和1.6
之间进行的。