我已经多次听到Git保留了“它知道的变更”的内部记录。因此,这通常就是为什么我们需要重新合并更改(例如,升级到开发阶段的修补程序)或重新定型所固有的问题的原因。我感觉这有点像“一流的对象”,其中所用的短语有点含糊不清,使用的比较松散,而底层的现实则更加简单。
那么“它知道的变化”到底是什么意思?每个分支在Git源代码中的哪个地方维护着它“知道”的sha1列表(也许在这里:https://github.com/git/git/blob/master/commit-graph.c)?当Git更改sha1时会发生什么?例如,说发布分支上的某人对a,b,c进行了壁球提交来制作d?
发布分支是否知道a,b,c,并在合并回dev时也将传递该信息或仅传递d的存在?如果dev分支已经提交a怎么办?它足够聪明以同时管理d的存在吗?