Git:在现有的补丁系列中添加一个补丁



假设我有一个补丁系列,如下所示:

0000-cover-letter.patch
0001-Patch1.patch
0002-Patch2.patch

现在我想添加0003-Patch3.patch作为该系列的一部分。

我可以做以下事情:

git format-patch HEAD~1 --start-number 3

但是,这不会起作用,因为求职信补丁不会更新。

有没有一种方法可以做到以下之一,哪种方法可以实现相同的目标:

  • 为现有系列添加补丁,并自动更新求职信
  • 在不更改修补程序的情况下,在现有修补程序列表上生成一封求职信

p.S:重新生成整个系列(HEAD~3(在这里不是选项,因为当生成第一个补丁时,我用补丁的描述对它们进行了编辑,如果我从头开始重新生成,这些补丁将被删除。

您希望手动向系列添加新补丁,这向我表明您应该改进补丁系列的工作流程。

理想情况下,创建一组新的补丁程序应该如此精简,以便不会想摆弄比你需要的更多的东西。

存储求职信

求职信应该放在某处。两个选项无穷大:

  • 将其作为分支上的第一个提交存储在"空"(无树更改(提交
    • 所以它存储在提交消息中
  • 将其存储在某个地方的gitnotes(1(消息中(第一次提交?(

存储自由格式的注释

您可以将注释存储在修补程序上,即不属于其中一部分的文本无论是提交消息还是修补程序本身。它们在---之间分离器和差异的开始

假设之前的评论中有人要求你在提交时做X(呃,补丁(。所以你需要注意的是:

---
Note: I was asked by Timothy to do X in <link>

你可以通过在提交上创建一个注释来做到这一点:

git notes edit

带有类似上面的信息。将存储为:

---
Notes:
I was asked by Timothy to do X in <link>

git patch-format输出的最小变化

似乎你(理想情况下(想限制你的补丁后格式编辑封面主题和正文的调用工作信如果你把它存放在某个地方,那么这主要只是一个问题复制-粘贴。

使用Git 2.43(2023年第4季度(,";CCD_ 3">(man(学习了一种提供求职信描述的方法,即(1(可以在没有可用分支描述的分离HEAD上使用,以及(2(如果有分支描述,也可以覆盖分支描述。

参见Oswald Buddenhagen(ossilator(提交的67f4b36(2023年8月21日(
(由Junio C Hamano——gitster——在提交3b4e3952023年9月1日合并(

format-patch:添加--description-file选项

签字人:Oswald Buddenhagen

此补丁可以直接提供分支描述以从中派生求职信
用例格式化动态创建的临时提交,这些提交在任何地方都没有引用。

最明显的选择是创建一个临时分支并对其进行描述,但这似乎并不特别优雅。

git format-patch现在在其手册页中包括:

--description-file=<file>

使用的内容而不是分支的描述用于生成求职信。

这意味着您现在有了一个更新求职信的替代方案:创建一个内容为0000-cover-letter.patch的文件,您可以更新该文件以包含第三个补丁。

然后git format-patch --description-file=<file>会用正确的内容更新您对补丁的描述。

最新更新