Ich habe versucht, einen speziellen Git-Befehl dafür zu suchen, aber ich konnte keinen finden. Gibt es etwas kürzeres oder schnelleres als das Folgende?
git branch | awk '/\*/ { print $2; }'
Ich habe versucht, einen speziellen Git-Befehl dafür zu suchen, aber ich konnte keinen finden. Gibt es etwas kürzeres oder schnelleres als das Folgende?
git branch | awk '/\*/ { print $2; }'
Antworten:
$ git rev-parse --abbrev-ref HEAD
master
Dies sollte mit Git 1.6.3 oder neuer funktionieren.
HEADmaster
In Git 1.8.1 können Sie den Befehl git symbolic-ref mit der Option "--short" verwenden:
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic refwenn Sie dies als Teil eines TravisCI-
Mit Git 2.22 (Q2 2019) haben Sie einen einfacheren Ansatz : git branch --show-current.
Siehe Commit 0ecb1fc (25. Oktober 2018) von Daniels Umanovskis ( umanovskis) .
(Zusammengeführt von Junio C Hamano - gitster- in Commit 3710f60 , 07. März 2019)
branch: vorstellen--show-currentAnzeigeoptionWenn mit aufgerufen
--show-current,git branchwird der aktuelle Filialname gedruckt und beendet.
Es wird nur der tatsächliche Name gedruckt, ohnerefs/heads.
Im getrennten HEAD-Zustand wird nichts ausgegeben.Bestimmt sowohl für die Skripterstellung als auch für die interaktive / informative Verwendung.
Im Gegensatz dazugit branch --listist keine Filterung erforderlich, um nur den Filialnamen zu erhalten.
Sie könnten an der Ausgabe von interessiert sein
git symbolic-ref HEAD
Insbesondere, abhängig von Ihren Anforderungen und Ihrem Layout, möchten Sie dies möglicherweise tun
basename $(git symbolic-ref HEAD)
oder
git symbolic-ref HEAD | cut -d/ -f3-
und dann gibt es wieder die .git/HEADDatei, die auch für Sie von Interesse sein kann.
git rev-parse --symbolic-full-namezu git symbolic-ref.
basenameoder cut; Verwenden Sie BR=${BR#refs/heads/}(wobei BR der Name der Variablen ist, deren Ausgabe Sie gespeichert haben git symbolic-ref HEAD).
git symbolic-ref --short HEADauch
Soweit ich das beurteilen kann, gibt es keine Möglichkeit, nur den aktuellen Zweig in Git nativ anzuzeigen. Daher habe ich Folgendes verwendet:
git branch | grep '*'
grep '*'handelt es sich nominell um einen Syntaxfehler. Du willst wahrscheinlich git branch | sed -n 's/^\* //p'sowieso. Oder tatsächlich, was das OP überhaupt gepostet hat, was dasselbe ist.
grep '*'nominell ein Syntaxfehler vorliegt?
'*'ein regulärer Ausdruck ist und als solcher ungültig ist. Sie möchten wahrscheinlich verwenden '[*]'(dh Zeichen *anstelle des Operators "null oder mehrmals").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Ich denke, das sollte schnell gehen und kann mit einer Python-API verwendet werden:
git branch --contains HEAD
* master
Ich benutze
/etc/bash_completion.d/git
Es wurde mit Git geliefert und bietet eine Eingabeaufforderung mit dem Namen des Zweigs und der Vervollständigung der Argumente.
$ source /etc//bash_completion.d/git-prompt File auf verschiedenen Systemen unterschiedlich benannt sein. (Hinweis: sourceSchlüsselwort ist das gleiche wie nur .(Punkt) in Bash.)
Der Vollständigkeit echo $(__git_ps1)halber sollten Sie zumindest unter Linux den Namen des aktuellen Zweigs in Klammern angeben.
Dies kann in einigen Szenarien nützlich sein, da es sich nicht um einen Git-Befehl handelt (abhängig von Git), insbesondere zum Einrichten Ihrer Bash-Eingabeaufforderung zum Anzeigen des aktuellen Zweigs .
Zum Beispiel:
/mnt/c/git/ConsoleApp1 (test-branch)> echo $(__git_ps1)
(test-branch)
/mnt/c/git/ConsoleApp1 (test-branch)> git checkout master
Switched to branch 'master'
/mnt/c/git/ConsoleApp1 (master)> echo $(__git_ps1)
(master)
/mnt/c/git/ConsoleApp1 (master)> cd ..
/mnt/c/git> echo $(__git_ps1)
/mnt/c/git>
Jemand könnte dies ( ) hilfreich finden. Der aktuelle Zweig wird mit einem * gekennzeichnet.git show-branch --current
host-78-65-229-191:idp-mobileid user-1$ git show-branch --current
! [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
* [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master
--
+ [CICD-1283-pipeline-in-shared-libraries] feat(CICD-1283): Use latest version of custom release plugin.
+ [CICD-1283-pipeline-in-shared-libraries^] feat(CICD-1283): Used the renamed AWS pipeline.
+ [CICD-1283-pipeline-in-shared-libraries~2] feat(CICD-1283): Point to feature branches of shared libraries.
-- [master] Merge pull request #12 in CORES/idp-mobileid from feature/fix-schema-name to master