Ho provato a cercare uno speciale comando Git per questo, ma non sono riuscito a trovarne uno. C'è qualcosa di più corto o più veloce del seguente?
git branch | awk '/\*/ { print $2; }'
Ho provato a cercare uno speciale comando Git per questo, ma non sono riuscito a trovarne uno. C'è qualcosa di più corto o più veloce del seguente?
git branch | awk '/\*/ { print $2; }'
Risposte:
$ git rev-parse --abbrev-ref HEAD
master
Questo dovrebbe funzionare con Git 1.6.3 o versioni successive.
HEAD
, non previstomaster
In Git 1.8.1 puoi usare il comando git symbolic-ref con l'opzione "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
quando si esegue questo come parte di una build
Con Git 2.22 (Q2 2019), si avrà un approccio più semplice: git branch --show-current
.
Vedi commit 0ecb1fc (25 ott 2018) di Daniels Umanovskis ( umanovskis
) .
(Unita da Junio C Hamano - gitster
- in commit 3710f60 , 07 mar 2019)
branch
: introduce l'--show-current
opzione di visualizzazioneSe chiamato con
--show-current
,git branch
stamperà il nome del ramo corrente e terminerà.
Viene stampato solo il nome effettivo, senzarefs/heads
.
In stato HEAD distaccato, non viene emesso nulla.Destinato sia allo scripting che all'uso interattivo / informativo.
Diversamentegit branch --list
, non è necessario alcun filtro per ottenere solo il nome del ramo.
Potresti essere interessato all'output di
git symbolic-ref HEAD
In particolare, a seconda delle esigenze e del layout che potresti voler fare
basename $(git symbolic-ref HEAD)
o
git symbolic-ref HEAD | cut -d/ -f3-
e poi di nuovo c'è il .git/HEAD
file che potrebbe anche interessarti.
git rev-parse --symbolic-full-name
a git symbolic-ref
.
basename
o cut
; use BR=${BR#refs/heads/}
(dove BR è il nome della variabile di cui hai salvato l'output git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
anche
Da quello che posso dire, non c'è modo di mostrare nativamente solo l'attuale ramo in Git, quindi ho usato:
git branch | grep '*'
grep '*'
è nominalmente un errore di sintassi. Probabilmente vuoi git branch | sed -n 's/^\* //p'
comunque. O in realtà, ciò che l'OP ha pubblicato in primo luogo, il che equivale alla stessa cosa.
grep '*'
è nominalmente un errore di sintassi?
'*'
è un'espressione regolare e come tale non è valida. Probabilmente si desidera utilizzare '[*]'
(ovvero, carattere *
anziché operatore "zero o più volte").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Immagino che questo dovrebbe essere veloce e può essere utilizzato con un'API Python:
git branch --contains HEAD
* master
sto usando
/etc/bash_completion.d/git
È arrivato con Git e fornisce un prompt con il nome del ramo e il completamento dell'argomento.
$ source /etc//bash_completion.d/git-prompt
File può essere nominato in modo diverso su sistemi diversi. (Nota: la source
parola chiave è la stessa di solo .
(punto) in bash.)
Per completezza, echo $(__git_ps1)
almeno su Linux, dovrebbe darti il nome dell'attuale ramo racchiuso tra parentesi.
Questo può essere utile in alcuni scenari in quanto non è un comando Git (mentre dipende da Git), in particolare per impostare il prompt dei comandi di Bash per visualizzare il ramo corrente .
Per esempio:
/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>
Qualcuno potrebbe trovare questo ( ) utile. Il ramo corrente è mostrato con un segno *.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