Cuando trabajo con git en un equipo que usa ramas de características, a menudo me resulta difícil entender la estructura de la rama en la historia.
Ejemplo:
Digamos que hubo una función de rama de características / hacer café , y la corrección de errores continuó en el maestro en paralelo a la rama de características.
La historia podría verse así:
* 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
|/
*
Problema
A primera vista, me resulta difícil saber de qué lado está la rama de características. Por lo general, necesito buscar varios comentarios en ambos lados para tener una idea de cuál es cuál. Esto se vuelve más complicado si hay varias ramas de características en paralelo (particularmente si son para características estrechamente relacionadas), o si se fusionó en ambas direcciones entre la rama de características y el maestro.
Como contraste, en Subversion, esto es significativamente más fácil porque el nombre de la sucursal es parte del historial, por lo que puedo decir de inmediato que una confirmación se realizó originalmente en "feature / make-coffee".
Git podría hacer esto más fácil al incluir el nombre de la rama actual en los metadatos de confirmación al crear una confirmación (junto con el autor, la fecha, etc.). Sin embargo, git no hace esto.
¿Hay alguna razón fundamental por la que esto no se hace? ¿O es que nadie quería la función? Si es lo último, ¿hay otras formas de entender el propósito de las ramas históricas sin ver el nombre?