ときどき、git の特定のブランチが開始するコミットについて、または特定のブランチで特定のコミットが作成されているかどうかを尋ねられます。ブランチの終点は非常に明確です。そこにブランチ ラベルが置かれます。しかし - それはどこから始まったのですか?些細な答えは、そのブランチを作成したそのコミットについてです。しかし、その情報は、私が今知る限り、最初のコミット後に失われてしまったので、質問をしているのです。
分岐したコミットがわかっている限り、グラフを描いて明確にすることができます。
A - B - C - - - - J [master]
\
D - E - F - G [branch-A]
\
H - - I [branch-B]
コミット時にブランチ B を作成したE
ので、それが「開始」です。私はそれをやったので、私はそれを知っています。しかし、他の人はそれを同じように認識できますか? 同じグラフを次のように描画できます。
A - B - C - - - - J [master]
\
\ F - G [branch-A]
\ /
D - E
\
H - I [branch-B]
では、グラフを見てください。どのブランチが で始まり、どのブランチが で始まりましE
たB
か? commitD
は両方のブランチのメンバーですか、それともブランチ A とブランチ B のどちらに属するかを明確に判断できますか?
これはやや哲学的に聞こえますが、実際にはそうではありません。スーパーバイザーは、いつブランチが開始されたか (通常はタスクの開始を示します)、変更がどのブランチに属しているか (変更の目的を把握するため - その変更は作業に必要だったのか) を知りたがる場合があります。これらの質問に正しく答えるために、git が情報 (ツール、コマンド) または定義を提供しているかどうかを知りたいです。