При работе с git в команде, использующей ветви функций, мне часто трудно понять структуру ветвей в истории.
Пример:
Допустим, была ветка Feature / Make-Coffee , и исправление ошибок продолжалось на master параллельно с веткой Feature.
История может выглядеть так:
* 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 этого не делает.
Есть ли какая-то фундаментальная причина, почему это не сделано? Или это просто, что никто не хотел эту функцию? Если это последнее, есть ли другие способы понять цель исторических ветвей, не видя названия?