Hier sind einige von mir verwendete Namenskonventionen für Zweige und die Gründe dafür
Namenskonventionen für Zweige
- Verwenden Sie Gruppierungstoken (Wörter) am Anfang Ihrer Zweigstellennamen.
- Definieren und verwenden Sie kurze Lead-Token, um Zweige auf eine Weise zu unterscheiden, die für Ihren Workflow von Bedeutung ist.
- Verwenden Sie Schrägstriche, um Teile Ihrer Filialnamen zu trennen.
- Verwenden Sie keine bloßen Zahlen als führende Teile.
- Vermeiden Sie lange beschreibende Namen für langlebige Zweige.
Gruppentoken
Verwenden Sie "Gruppierungs" -Token vor Ihren Filialnamen.
group1/foo
group2/foo
group1/bar
group2/bar
group3/bar
group1/baz
Die Gruppen können beliebig benannt werden, um Ihrem Workflow zu entsprechen. Ich verwende gerne kurze Substantive für meine. Lesen Sie weiter für mehr Klarheit.
Kurze, gut definierte Token
Wählen Sie kurze Token, damit nicht jeder Ihrer Filialnamen zu stark verrauscht wird. Ich benutze diese:
wip Works in progress; stuff I know won't be finished soon
feat Feature I'm adding or expanding
bug Bug fix or experiment
junk Throwaway branch created to experiment
Mit jedem dieser Token können Sie feststellen, zu welchem Teil Ihres Workflows jeder Zweig gehört.
Es hört sich so an, als hätten Sie mehrere Zweige für verschiedene Zyklen einer Änderung. Ich weiß nicht, was Ihre Zyklen sind, aber nehmen wir an, sie sind "neu", "testen" und "verifiziert". Sie können Ihre Zweige mit abgekürzten Versionen dieser Tags benennen, die immer gleich geschrieben sind, um sie zu gruppieren und Sie daran zu erinnern, in welcher Phase Sie sich befinden.
new/frabnotz
new/foo
new/bar
test/foo
test/frabnotz
ver/foo
Sie können schnell feststellen, welche Zweige die einzelnen Phasen erreicht haben, und Sie können sie mithilfe der Git-Mustervergleichsoptionen einfach zu Gruppen zusammenfassen.
$ git branch --list "test/*"
test/foo
test/frabnotz
$ git branch --list "*/foo"
new/foo
test/foo
ver/foo
$ gitk --branches="*/foo"
Verwenden Sie Schrägstriche, um Teile zu trennen
Sie können fast jedes Trennzeichen in Zweignamen verwenden, aber ich finde Schrägstriche am flexibelsten. Möglicherweise bevorzugen Sie Striche oder Punkte. Mit Schrägstrichen können Sie jedoch beim Umschalten oder Abrufen von / zu einer Fernbedienung einige Zweige umbenennen.
$ git push origin 'refs/heads/feature/*:refs/heads/phord/feat/*'
$ git push origin 'refs/heads/bug/*:refs/heads/review/bugfix/*'
Für mich funktionieren Schrägstriche auch besser für die Tab-Erweiterung (Befehlsvervollständigung) in meiner Shell. So wie ich es konfiguriert habe, kann ich nach Zweigen mit verschiedenen Unterteilen suchen, indem ich die ersten Zeichen des Teils eingebe und die TAB-Taste drücke. Zsh gibt mir dann eine Liste von Zweigen, die dem Teil des von mir eingegebenen Tokens entsprechen. Dies funktioniert sowohl für vorangegangene als auch für eingebettete Token.
$ git checkout new<TAB>
Menu: new/frabnotz new/foo new/bar
$ git checkout foo<TAB>
Menu: new/foo test/foo ver/foo
(Zshell ist in Bezug auf die Befehlsvervollständigung sehr konfigurierbar und ich könnte es auch so konfigurieren, dass Bindestriche, Unterstriche oder Punkte auf die gleiche Weise behandelt werden. Aber ich entscheide mich dagegen.)
Außerdem können Sie in vielen Git-Befehlen wie folgt nach Zweigen suchen:
git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*"
gitk --branches="feature/*"
Vorsichtsmaßnahme: Wie Slipp in den Kommentaren hervorhebt, können Schrägstriche Probleme verursachen. Da Zweige als Pfade implementiert sind, können Sie keinen Zweig mit dem Namen "foo" und keinen anderen Zweig mit dem Namen "foo / bar" haben. Dies kann für neue Benutzer verwirrend sein.
Verwenden Sie keine bloßen Zahlen
Verwenden Sie keine bloßen Zahlen (oder Hex-Zahlen) als Teil Ihres Zweigbenennungsschemas. Innerhalb der Tab-Erweiterung eines Referenznamens kann git entscheiden, dass eine Zahl Teil eines sha-1 anstelle eines Verzweigungsnamens ist. Zum Beispiel benennt mein Issue-Tracker Fehler mit Dezimalzahlen. Ich nenne meine verwandten Zweige CRnnnnn und nicht nur nnnnn, um Verwirrung zu vermeiden.
$ git checkout CR15032<TAB>
Menu: fix/CR15032 test/CR15032
Wenn ich versuchen würde, nur 15032 zu erweitern, wäre git unsicher, ob ich nach SHA-1- oder Filialnamen suchen möchte, und meine Auswahl wäre etwas eingeschränkt.
Vermeiden Sie lange beschreibende Namen
Lange Filialnamen können sehr hilfreich sein, wenn Sie sich eine Liste von Filialen ansehen. Beim Betrachten von dekorierten einzeiligen Protokollen kann dies jedoch stören, da die Zweignamen den größten Teil der einzelnen Zeile verschlingen und den sichtbaren Teil des Protokolls abkürzen können.
Auf der anderen Seite können lange Zweignamen bei "Commits zusammenführen" hilfreicher sein, wenn Sie sie nicht gewöhnlich von Hand neu schreiben. Die Standard-Merge-Commit-Nachricht lautet Merge branch 'branch-name'
. Möglicherweise ist es hilfreicher, Zusammenführungsnachrichten als Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'
nur anzuzeigen Merge branch 'fix/CR15032'
.