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.
HEAD
master
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 ref
wenn 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-current
AnzeigeoptionWenn mit aufgerufen
--show-current
,git branch
wird 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 --list
ist 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/HEAD
Datei, die auch für Sie von Interesse sein kann.
git rev-parse --symbolic-full-name
zu git symbolic-ref
.
basename
oder 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 HEAD
auch
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: source
Schlü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