3

假设一个文件有 5 个补丁,其中 4 个补丁更改了文件内容并添加了新行。但是我们仍然可以将单个补丁 5 应用于 git 树。为什么?由于我认为行号已更改,因此行内容不再匹配。git 如何确定我更改了哪一行?通过三行上下文的变化?我不认为这是合理的。

顺便说一句,如何生成像 [PATCH 0/5] 这样的数字零补丁?似乎格式补丁只能从 0001 生成。

4

1 回答 1

1

通过三行上下文的变化?

这是git apply描述它的方式:

<n>确保每次更改前后至少有几行周围的上下文匹配。
当周围上下文的行数较少时,它们都必须匹配。

所以是的,即使行发生了变化,上下文仍然是确定补丁是否应该应用的关键。


关于编号方面,我没有测试,但看看command--start-number的选项是否有帮助:git format-patch

--start-number <n>

从 1开始对补丁进行编号<n>

于 2013-08-05T06:37:08.980 回答