我试图在我的回购中挑选一些提交,但它一直在失败 (我在SO上尝试了这个教程:“What is the best way to git patch a subrange of a branch?”)
所以我做了一个解决方法:
git format-patch
提交真的很脏,但更容易做。
所以我做了一个
git format-patch -66
(我正在寻找的提交是66次提交)
问题是它一直停在047 是什么赋予了? 我可以生成的补丁是否有限制?
答案 0 :(得分:3)
git format-patch
的-<n>
选项有点棘手,如this thread illustrates,来自git贡献者(对于gitweb)和SO用户Jakub Narębski :
git-format-patch的工作方式似乎存在概念性错误,即“
-<n>
”传递给rev-list
/log
生成机器,和它限制了提交的数量;如果其中一些提交是合并提交(无法表示为修补程序),则它生成的修补程序数量少于指定的
<n>
(如您所见) 我提供的示例,其中<n>
== 3,git-format-patch生成2个补丁,而不是3)。在极端情况下(如'
pu
'),它不能生成补丁。
(pu
在这里public branch of the git-scm repo。)
在OP的案例中,正如他在评论中指出的那样,它可能意味着19个提交是合并补丁。
Jakub继续提出以下解决方案:
更新
git-format-patch
文档说“提交”而不是“补丁”,
也许还会大声提醒我们正在跳过,所以我的例子看起来就像是像这样:
$ git format-patch -3
0001-gitweb-Prepare-for-splitting-gitweb.txt
0002-gitweb-Create-Gitweb-Git-module.txt
Skipping merge commit: Merge branch 'maint'
,Ramkumar Ramachandra proposes last August (2010) to write a patch。
您可以在此September 2010 what's cooking in git.git
中看到补丁酝酿[新主题]
rr/format-patch-count-without-merges
(2010-08-28)2提交
-format-patch
:不要过去合并提交
-t4014-format-patch
:在提交之前调用test_tick
并且仍然位于[Cooking]
部分中的最新what's cooking (Sept. 27th),其中包含以下注释:
潜在用户的评论?