Hier sind einige der von mir verwendeten Konventionen zur Benennung von Zweigen und die Gründe dafür
Konventionen zur Benennung von Zweigen
- Verwenden Sie Gruppierungszeichen (Wörter) am Anfang Ihrer Zweignamen.
- Definieren und verwenden Sie kurze Lead-Token, um Zweige in einer Weise zu unterscheiden, die für Ihren Arbeitsablauf sinnvoll ist.
- Verwenden Sie Schrägstriche, um Teile des Zweignamens zu trennen.
- Verwenden Sie keine blanken Zahlen als führende Teile.
- Vermeiden Sie lange beschreibende Namen für langlebige Zweige.
Gruppenmünzen
Verwenden Sie "Gruppierungs"-Zeichen vor den Namen Ihrer Zweige.
group1/foo
group2/foo
group1/bar
group2/bar
group3/bar
group1/baz
Die Gruppen können nach Belieben benannt werden, um sie an Ihren Arbeitsablauf anzupassen. Ich verwende gerne kurze Namen für meine Gruppen. Lesen Sie weiter, um mehr Klarheit zu erhalten.
Kurze wohldefinierte Token
Wählen Sie kurze Token, damit sie nicht zu viel Lärm zu jedem Ihrer Zweignamen hinzufügen. Ich verwende 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
Jedes dieser Token kann verwendet werden, um Ihnen mitzuteilen, zu welchem Teil Ihres Arbeitsablaufs jeder Zweig gehört.
Es klingt, als hätten Sie mehrere Zweige für verschiedene Änderungszyklen. Ich weiß nicht, welche Zyklen Sie haben, aber nehmen wir an, es sind "Neu", "Testen" und "Verifiziert". Sie können Ihre Zweige mit abgekürzten Versionen dieser Tags benennen, die immer gleich geschrieben werden, um sie zu gruppieren und um Sie daran zu erinnern, in welchem Stadium Sie sich befinden.
new/frabnotz
new/foo
new/bar
test/foo
test/frabnotz
ver/foo
Sie können schnell erkennen, welche Zweige die verschiedenen Stadien erreicht haben, und Sie können sie mithilfe der Git-Optionen für den Musterabgleich leicht 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 zur Trennung von Teilen
Sie können fast jedes beliebige Begrenzungszeichen in Zweignamen verwenden, aber ich finde, dass Schrägstriche am flexibelsten sind. Sie könnten Bindestriche oder Punkte bevorzugen. Aber mit Schrägstrichen können Sie einen Zweig umbenennen, wenn Sie ihn an einen entfernten Ort schieben oder von dort abrufen.
$ 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 Tabulator-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 liefert mir dann eine Liste von Verzweigungen, die mit dem Teil des Tokens übereinstimmen, das ich eingegeben habe. Dies funktioniert sowohl für vorangestellte 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 es Bindestriche, Unterstriche oder Punkte auf die gleiche Weise behandelt. Aber ich entscheide mich dagegen.)
Außerdem können Sie damit in vielen Git-Befehlen nach Zweigen suchen, z. B. so:
git branch --list "feature/*"
git log --graph --oneline --decorate --branches="feature/*"
gitk --branches="feature/*"
Achtung: Wie Slipp in den Kommentaren anmerkt, können Schrägstriche Probleme verursachen. Da Verzweigungen als Pfade implementiert sind, kann man nicht eine Verzweigung mit dem Namen "foo" und eine andere Verzweigung mit dem Namen "foo/bar" haben. Dies kann für neue Benutzer verwirrend sein.
Keine bloßen Zahlen verwenden
Verwenden Sie keine bloßen Zahlen (oder Hexadezimalzahlen) als Teil des Namensschemas für die Verzweigung. Innerhalb der Tab-Erweiterung eines Referenznamens kann Git entscheiden, dass eine Zahl Teil eines sha-1 anstelle eines Zweignamens ist. Zum Beispiel benennt mein Fehlerverfolgungssystem Bugs mit Dezimalzahlen. Ich nenne meine zugehörigen Zweige CRnnnnn und nicht einfach nnnnn, um Verwechslungen 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 SHA-1s oder Zweignamen suchen wollte, und meine Auswahl wäre etwas eingeschränkt.
Vermeiden Sie lange, beschreibende Namen
Lange Zweignamen können sehr hilfreich sein, wenn Sie eine Liste von Zweigen betrachten. Bei einzeiligen Protokollen können sie jedoch hinderlich sein, da die Zweignamen den größten Teil der Zeile einnehmen und den sichtbaren Teil des Protokolls abkürzen können.
Andererseits können lange Zweignamen bei "Merge Commits" hilfreicher sein, wenn man sie nicht gewohnheitsmäßig von Hand umschreibt. Die Standardnachricht für das Zusammenführen von Übertragungen ist Merge branch 'branch-name'
. Möglicherweise ist es hilfreicher, wenn Zusammenführungsnachrichten wie folgt angezeigt werden Merge branch 'fix/CR15032/crash-when-unformatted-disk-inserted'
statt nur Merge branch 'fix/CR15032'
.
0 Stimmen
Ja - wahrscheinlich ist es gut, Zweige, die nicht mehr nützlich sind, nicht mehr zu behalten oder zu verschieben, wenn man mit ihnen fertig ist. Wenn es keinen guten Grund gibt, einen Themenzweig zu behalten (z.B. um ihn später zu konsultieren), ist es kein Problem, ihn zu löschen. Git macht das Verzweigen einfach, und eine Folge davon ist, dass man am Ende eine Menge trivialer Zweige herumliegen hat, die man ohne viel Aufhebens löschen kann.
21 Stimmen
Siehe auch github.com/agis-/git-style-guide
2 Stimmen
Der Vollständigkeit halber seien hier noch einige Zeichenfolgen, die Sie nicht verwenden können .
1 Stimmen
@Wim Wir verwenden Jira Issue Keys, kombiniert mit einem kurzen Titel, zum Beispiel:
KEY-1234/allow-users-to-do-smart-stuff