Wenn ich mit Git in einem Team mit Feature-Zweigen arbeite, finde ich es oft schwierig, die Zweigstruktur in der Geschichte zu verstehen.
Beispiel:
Nehmen wir an, es gab ein Feature-Branch- Feature / einen Kaffee zum Zubereiten und die Fehlerbehebung auf dem Master wurde parallel zum Feature-Branch fortgesetzt .
Die Geschichte könnte so aussehen:
* 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
|/
*
Problem
Auf den ersten Blick fällt es mir schwer zu sagen, auf welcher Seite sich der Feature-Zweig befindet. Normalerweise muss ich auf beiden Seiten mehrere Kommentare durchsuchen, um eine Vorstellung davon zu bekommen, welche welche ist. Dies wird noch komplizierter, wenn mehrere Feature-Zweige parallel vorhanden sind (insbesondere wenn es sich um eng verwandte Features handelt) oder wenn Feature-Zweige und Master in beide Richtungen zusammengeführt wurden.
Im Gegensatz dazu ist dies in Subversion erheblich einfacher, da der Filialname Teil des Verlaufs ist. So kann ich sofort feststellen, dass ursprünglich ein Commit für "feature / make-coffee" ausgeführt wurde.
Git könnte dies vereinfachen, indem der Name des aktuellen Zweigs in die Commit-Metadaten aufgenommen wird, wenn ein Commit erstellt wird (zusammen mit Autor, Datum usw.). Git tut dies jedoch nicht.
Gibt es einen fundamentalen Grund, warum dies nicht getan wird? Oder wollte nur niemand die Funktion? Wenn es das letztere ist, gibt es andere Möglichkeiten, den Zweck historischer Zweige zu verstehen, ohne den Namen zu sehen?