機能ブランチを使用してチームでgitを操作するとき、歴史上のブランチ構造を理解するのが難しいことがよくあります。
例:
機能ブランチfeature / make-coffeeがあり、機能のブランチと並行してmasterでバグ修正が続けられたとしましょう。
履歴は次のようになります。
* merge feature/make-coffee
|\
| * small bugfix
| |
* | fix bug #1234
| |
| * add milk and sugar
| |
* | improve comments
| |
* | fix bug #9434
| |
| * make coffe (without milk or sugar)
| |
* | improve comments
|/
*
問題
一見したところ、どちら側が機能ブランチであるかを判断するのは難しいと思います。私は通常、どちらがどちらであるかを知るために、両側のいくつかのコメントを閲覧する必要があります。これは、複数の機能ブランチが並行して存在する場合(特に密接に関連する機能のためのものである場合)、または機能ブランチとマスターの間で両方向にマージされた場合、より複雑になります。
対照的に、Subversionでは、ブランチ名が履歴の一部であるため、これは非常に簡単です。したがって、「feature / make-coffee」でコミットが最初に行われたことがすぐにわかります。
Git は、コミットを作成するときに(作成者、日付などとともに)コミットメタデータに現在のブランチの名前を含めることで、これを簡単にします。ただし、gitはこれを行いません。
これが行われない根本的な理由はありますか?それとも、誰もこの機能を望んでいないということですか?後者の場合、名前を見ずに歴史的な枝の目的を理解する他の方法はありますか?