假设我们有一个文件的5个补丁,其中4个补丁更改了文件内容并添加了新行。但我们仍然可以将一个补丁5应用于git树。为什么?因为我认为行号已经改变,所以行内容不再匹配。 git如何确定我改变了哪一行?通过改变的三线背景?我认为这不合理。
BTW,如何生成像[PATCH 0/5]这样的数字零补丁?似乎格式补丁只能从0001生成。
答案 0 :(得分:1)
通过改变的三线背景?
这是git apply
描述它的方式:
确保每次更改前后至少有
<n>
条周围环境匹配 当存在较少的周围环境线时,它们都必须匹配。
所以是的,即使行数字发生了变化,上下文仍然是确定补丁是否适用的关键。
关于编号方面,我没有测试,但看看git format-patch
command的--start-number
选项是否有帮助:
--start-number <n>
开始在
编号补丁<n>
而不是1。