在使用功能分支的团队中使用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中,这非常容易,因为分支名称是历史记录的一部分-因此我可以立即告诉您,最初是在“功能/制造咖啡”上进行的。
通过创建提交时(连同作者,日期等),Git 可以通过在提交元数据中包括当前分支的名称来简化此过程。但是,git不会这样做。
是否有一些根本原因无法做到这一点?还是只是没有人想要该功能?如果是后者,还有其他方法可以在不看到名称的情况下了解历史分支的目的吗?