git是如何处理几个补丁中的一个的?

时间:2013-08-05 06:09:15

标签: linux git patch

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

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

1 个答案:

答案 0 :(得分:1)

  

通过改变的三线背景?

这是git apply描述它的方式:

  

确保每次更改前后至少有<n>条周围环境匹配   当存在较少的周围环境线时,它们都必须匹配。

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


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

--start-number <n>
  

开始在<n>而不是1。

编号补丁