Gibt es in Git eine Möglichkeit, eine 'Beschreibung' für Zweige zu haben?
Während ich versuche, beschreibende Namen zu verwenden, dämpft das Arbeiten für eine Weile an einem einzelnen Zweig manchmal meine Erinnerung daran, warum ich einige der anderen Themenzweige erstellt habe. Ich versuche, beschreibende Namen für die Zweige zu verwenden, aber ich denke, eine 'Beschreibung' (kurze Anmerkung zum Zweck des Zweigs) wäre schön.
git
branch
task-tracking
Noufal Ibrahim
quelle
quelle
Antworten:
Git 1.7.9 unterstützt dies. Aus den Versionshinweisen zu 1.7.9 :
Sie können diese Funktion sehen, die bereits im September 2011 mit den Commits 6f9a332 , 739453a3 , b7200e8 eingeführt wurde :
Beachten Sie, dass dies für einen getrennten HEAD-Zweig nicht funktioniert.
Diese Beschreibung wird vom Skript request-pull verwendet: siehe commit c016814783 , aber auch
git merge --log
.[Von @AchalDave] Leider können Sie Beschreibungen nicht pushen, da sie in Ihrer Konfiguration gespeichert sind, sodass sie für die Dokumentation von Zweigen in einem Team unbrauchbar sind.
quelle
git config branch.topic.description
, die Beschreibung für den Zweig anzuzeigentopic
. Es ist in der.git/config
Datei gespeichert .git branch
die Beschreibungen in der Liste zeigen würde ...Wenn Sie Sie die README am Ende mit, erstellen Sie eine git alias modifiziert ,
git checkout
so dass Ihre README jedes Mal , wenn Zweige wechseln angezeigt wird.Fügen Sie dies beispielsweise in ~ / .gitconfig unter [Alias] hinzu.
Danach können Sie den Zweig
git cor <branch_name>
wechseln und die README-Datei des Zweigs anzeigen, zu dem Sie wechseln.quelle
1.7.11-msysgit.1
). Ich benutze stattdessen $ 0. Und alles ist gut.sh -c
"; z.B,.alias = "!f() { git checkout "${1}" && cat README.md; }; f"
(Klammern und Anführungszeichen sind in diesem Fall nicht erforderlich, nur der Vollständigkeit~/.gitconfig
, unter definiert ist[alias]
, und der Name des Alias wird tatsächlich (und verständlicherweise verwirrend)alias
aus meiner tatsächlichen Konfiguration aufgerufen (ich hätte ihn umbenennen sollen, damitcor
dieses Beispiel konsistent ist). Mein eigentlicheralias
Alias lautet:alias = "!f() { git config --get-regexp "^alias.${1}$" ; }; f"
Verwendung:git alias {alias_name}
odergit alias {alias_regexp}
. Analog zum Bash-alias
Befehl$ alias ll
ergibt sich zB (für mich) :alias ll='ls -l'
; und$ git alias br
ergibt:alias.br branch -v --list
(könnte auch verwenden:$ git alias 'b.*'
)Verwenden Sie
git branch --edit-description
diese Option, um eine Zweigbeschreibung festzulegen oder zu bearbeiten.Hier ist eine Shell-Funktion zum Anzeigen von Zweigen ähnlich,
git branch
aber mit angehängten Beschreibungen.So
gb
sieht es aus, hier als Text angezeigt, falls das Bild verrottet:Und als Bild, damit Sie die Farben sehen können:
quelle
Der
README
von Chris J vorgeschlagene kann funktionieren, vorausgesetzt, er wird mit einem benutzerdefinierten Zusammenführungstreiber eingerichtet, der in a definiert ist.gitattribute
.Auf diese Weise bleibt die lokale Version von
README
bei Zusammenführungen immer erhalten.Die "Beschreibung" für Zweige wird auch als "Kommentar" bezeichnet, der diesen Metadaten zugeordnet ist, und wird nicht unterstützt.
Zumindest können Sie mit einer
README
Datei für jeden Zweig Folgendes ausführen:Befindet sich Ihre README-Datei im Stammverzeichnis Ihres REPO, funktioniert sie von jedem Pfad aus, da der von verwendete Pfad
git show
ein absoluter Pfad aus dem obersten Verzeichnis des Repos ist.quelle
.gitattributes
Datei in Ihr Repository ein, also nein, es würde nur für alle funktionieren. Dies scheint jedoch beim Zusammenführen über einige webbasierte Schnittstellen nicht zu funktionieren, z. B. wenn Pull-Anforderungen in Azure DevOps verwendet werden.Hier gibt es zwei beliebte Vorschläge:
git branch --edit-description
: Wir mögen das nicht, weil man es nicht schieben kann. Vielleicht kann ich mich daran erinnern, was die von mir erstellten Niederlassungen tun, aber mein Team kann es sicher nicht.README
Datei pr. Ast. Dies ist ein Problem beim Zusammenführen: Sehr anfällig für das Zusammenführen von Konflikten, und wir werdenREADME
aus Zweigen ziehen, wenn wir Feature-Zweige zusammenführen. Diffs zwischen Zweigen sind auch ein Schmerz.Wir haben beschlossen, eine verwaiste
branches-readme
Niederlassung einzurichten . Waisenzweige sind Zweige mit einer eigenen Geschichte - Sie kennen sie möglicherweise aus Githubsgh-pages
Zweigen. Dieser verwaiste Zweig enthält eine einzelneREADME
Datei. Es hat Inhalte wie:Es ist Push-fähig und zusammenführungsfreundlich. Zeigen Sie die
README
von jedem Zweig mit:Nachteile sind, dass Sie den seltsamen verwaisten Zweig auschecken müssen, wenn Sie den aktualisieren möchten,
README
und derREADME
nicht automatisch aktualisiert wird, wenn Zweige umbenannt werden, kommen oder gehen. Das ist aber gut für uns.Mach es wie:
In ähnlicher Weise können einzelne Teammitglieder auch ihre eigenen
branches-$user
verwaisten Zweige erstellen , die ihre eigenen privaten Zweige beschreiben, wenn sie möchten, sofern sie diese nicht an das Team weiterleiten .Mit weiteren Werkzeugen könnte dies auch in die Ausgabe von integriert werden
git branch
. Zu diesem Zweck könnte möglicherweise eineREADME.yaml
Datei anstelle einer Ebene betrachtet werdenREADME
.quelle
Der Befehl definiert eine globale Option
alias.about
als Shell-Ausdruck. Laufengit about <branch>
in einem Repository wird Zweig Beschreibung angezeigt , wenn gesetzt.quelle
"!describe() { git config branch.\"$(git symbolic-ref --short -q HEAD)\".description; }; describe"
git config --global --add alias.about '!describe() { git config branch."$(git symbolic-ref --short -q HEAD)".description; }; describe'
Hier ist eine mögliche Implementierung des
git branches
Befehls, auf den Greg Hewgill anspielte:quelle
Hier ist eine
git
alias
, mit der Sie Beschreibungen für den aktuellen Zweig festlegen und lesen können:Verwendung / Beispiele:
Besonderer Dank geht an @Felicio für die Antwort, mit der ich angefangen habe.
quelle
Sie können Tags Kommentare hinzufügen:
Konventionell könnten Sie Tags haben, die sich auf Ihre Filialnamen beziehen, oder Sie könnten Tag -f verwenden, um ein kommentiertes Tag am Kopf Ihrer Themenzweige zu halten.
quelle
Angenommen, Sie möchten einen Zweig erstellen
quelle
Ich bin mir ziemlich sicher, dass diese Funktion derzeit nicht unterstützt wird. Ich denke, Ihre beste Wahl ist es, eine Beschreibungstextdatei, im Grunde eine README-Datei, in dem Zweig zu erstellen, der die gewünschten Informationen enthält.
quelle
Die ausgewählte Antwort scheint mir übertrieben. Ich würde geneigt sein , eine pro Zweig Beschreibungsdatei zu erhalten , die eine normale Quelle gesteuert Datei ist, sagen wir
master.txt
,dev.txt
usw. , und wenn es eine unhandliche Zahl oder Verzweigungen würde ich eine Hierarchie besser organisieren es schaffen.quelle
git show master:dev.txt
die nicht einfacher als die ausgewählte Antwort ist.Benutz einfach:
Um Kredit zu geben, wo Kredit fällig ist: https://glebbahmutov.com/blog/git-branches-with-descriptions/
quelle
Verwenden
um einen vorgelagerten Zweig zu zeigen:
Hinzufügen
-r
, um nur Fernbedienungen anzuzeigen oder-a
um Fernbedienungen und lokale Anzeigen anzuzeigen.quelle