Ich habe versucht, einen speziellen Git-Befehl dafür zu finden, aber ich konnte keinen finden. Gibt es etwas Kürzeres oder Schnelleres als den folgenden Befehl?
git branch | awk '/\*/ { print $2; }'
Ich habe versucht, einen speziellen Git-Befehl dafür zu finden, aber ich konnte keinen finden. Gibt es etwas Kürzeres oder Schnelleres als den folgenden Befehl?
git branch | awk '/\*/ { print $2; }'
Funktioniert bei mir auch nicht, mit git-1.6.2.5. git rev-parse --abbrev-ref HEAD => --abbrev-ref 311172491a9a667f9321bdf1c4fe5e22cc6e2c08 (d.h. rev-parse akzeptiert --abbrev-ref nicht (steht auch nicht in der Man Page))
JasonWoof, funktioniert bei mir in 1.6.4.2, muss im Changelog nachsehen, wann genau das passiert ist ;-)
Soweit ich den Git-Logs entnehmen kann, wurde diese Funktion am 20.04.2009 zusammengeführt und mit Version 1.6.3 veröffentlicht.
Mit Git 2.22 (Q2 2019) werden Sie einen einfacheren Ansatz haben: git branch --show-current
.
Siehe 0ecb1fc übertragen (25. Okt. 2018) von Daniels Umanovskis ( umanovskis
) .
(Zusammengefasst von Junio C. Hamano -- gitster
-- en 3710f60 festlegen , 07. März 2019)
branch
: einführen--show-current
AnzeigeoptionBeim Aufruf mit
--show-current
,git branch
druckt die aktuelle Zweignamen aus und beendet sich.
Es wird nur der eigentliche Name gedruckt, ohnerefs/heads
.
Im abgetrennten HEAD-Zustand wird nichts ausgegeben.Sowohl für die Skripterstellung als auch für die interaktive/informative Nutzung vorgesehen.
Anders alsgit branch --list
ist keine Filterung erforderlich, um einfach die Zweignamen zu erhalten.
Siehe die ursprüngliche Diskussion auf der Git-Mailingliste im Okt. 2018 und die tatsächlicher Patch .
Warnung: wie erwähnt in den Kommentaren von Olivier :
Das funktioniert nicht in jeder Situation!
Wenn Sie sich zum Beispiel in einer Submodul funktioniert es nicht.
'git symbolic-ref --short HEAD
' funktioniert immer.
Achtung, das funktioniert nicht in jeder Situation! Wenn Sie sich zum Beispiel in einem Submodul befinden, funktioniert es no Arbeit. 'git symbolic-ref --short HEAD' funktioniert immer
@Olivier Gutes Argument, merci beaucoup. Ich habe Ihren Kommentar in die Antwort aufgenommen, um ihn besser sichtbar zu machen.
Sie erhalten die Fehlermeldung fatal: ref HEAD is not a symbolic ref
wenn dies als Teil eines TravisCI-Builds ausgeführt wird
Scheint in GIT 1.9.1 nicht zu funktionieren ``` git version 1.9.1 fatal: ref HEAD is not a symbolic ref ```
Vielleicht interessiert Sie die Ausgabe von
git symbolic-ref HEAD
Je nach Ihren Bedürfnissen und Ihrem Layout können Sie insbesondere Folgendes tun
basename $(git symbolic-ref HEAD)
ou
git symbolic-ref HEAD | cut -d/ -f3-
und dann ist da noch die .git/HEAD
die auch für Sie von Interesse sein könnte.
Sie brauchen nicht zu verwenden basename
o cut
; Verwendung BR=${BR#refs/heads/}
(wobei BR der Name der Variablen ist, deren Ausgabe Sie gespeichert haben git symbolic-ref HEAD
).
Das funktioniert zwar mit GNU coreutils, grep '*'
ist nominell ein Syntaxfehler. Sie wollen wahrscheinlich git branch | sed -n 's/^\* //p'
sowieso. Oder eigentlich das, was der Auftraggeber überhaupt gepostet hat, was auf das Gleiche hinausläuft.
@tripleee können Sie mich darüber aufklären, warum grep '*'
nominell ein Syntaxfehler ist?
Genau wie der Plural s hat im Englischen keine sinnvolle Bedeutung für sich allein, man kann nicht "zero or more times" ohne etwas davor sagen. (Ich dachte, ich hätte mich daran erinnert, dass die GNU grep
In der Dokumentation wird ausdrücklich erwähnt, dass ein einsamer *
am Anfang der Zeichenfolge wird wörtlich interpretiert, d. h. als [*]
in der allgemeinen Regex, aber ich kann das jetzt nicht dokumentiert finden).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
Ich denke, dass dies der schnellste Weg ist, um den aktuellen Zweig zu erhalten.
3 Stimmen
Mögliche Duplikate von Wie erhält man den Namen des aktuellen Zweigs in Git?
0 Stimmen
@ChandrayyaGK: Nein, denn die andere Frage bezieht sich auf die Ausführung innerhalb Ihrer IDE. (Viele der Antworten beziehen sich auf die Verwendung der Kommandozeile, es lohnt sich also, einen Blick darauf zu werfen, aber es ist kein richtiges Duplikat, und diese Antworten sollten vielleicht stattdessen hierher migriert werden, wenn es welche gibt, die einen bedeutenden Mehrwert zu dem haben, was hier bereits steht).
6 Stimmen
@Torek - hier ist eine weitere einfache Aufgabe, die durch Git erschwert wird.
0 Stimmen
Die oberste Antwort auf den von @ChandrayyaGK geposteten Link ist viel langsamer als diese!
0 Stimmen
Interessante Kuriosität; git wurde 2005 entwickelt und 14 Jahre später ist es nun möglich, den aktuellen Zweig anzuzeigen Mercurial wurde ebenfalls 2005 entwickelt und 1 Jahr später war es möglich, den aktuellen Zweig anzuzeigen (von Änderungsprotokoll der Version 0.9.2 - neue Befehle branch und branches zur Verwaltung benannter Zweige ).