git、メカニズムと運用方針の混同

以下は https://ics.media/entry/14449/ にあった図:

間違いだと言うつもりはないが、誤認誘導的〈misleading〉ではある。

「親ブランチ」「子ブランチ」という言葉を使っている。気持ちは、基底ブランチと派生ブランチだと思う。が、ブランチを、コミットノードのリビジョン順序による下方集合と解釈すると、親子の関係はない。リビジョン関係に関する分岐ノードを作った段階で、分岐ノードより下方(先祖方向)のグラフは共有された履歴であり、どちらかのものではない。

が、運用方針とか心積もりとして、どちらかを親とみなすことになる。それに目くじらを立てているわけではない!

言いたいことは; メカニズム上「親ブランチ〈基底ブランチ〉」「子ブランチ〈派生ブランチ〉」があるわけではなくて、運用規則や合意により生じる概念。つまり、その概念は人間の心のなかにあり、ソフトウェア側は認識してない。

さらにややこしいのは、マージが対等合併ではなくて吸収合併っぽくて、マージする〈吸収する〉側とマージされる〈吸収される〉側がある。この非対称性からも「親」「子」の別があるような印象が強化される。