Tentei procurar um comando Git especial para isso, mas não consegui encontrar um. Existe algo mais curto ou mais rápido que o seguinte?
git branch | awk '/\*/ { print $2; }'
Tentei procurar um comando Git especial para isso, mas não consegui encontrar um. Existe algo mais curto ou mais rápido que o seguinte?
git branch | awk '/\*/ { print $2; }'
Respostas:
$ git rev-parse --abbrev-ref HEAD
master
Isso deve funcionar com o Git 1.6.3 ou mais recente.
HEAD
, não é esperadomaster
No Git 1.8.1, você pode usar o comando git symbolic-ref com a opção "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
ao executar este como parte de uma compilação TravisCI
Com Git 2,22 (Q2 2019), você terá uma abordagem mais simples: git branch --show-current
.
Veja commit 0ecb1fc (25 de outubro de 2018) por Daniels Umanovskis ( umanovskis
) .
(Mesclado por Junio C Hamano - gitster
- in commit 3710f60 , 07 mar 2019)
branch
: introduzir--show-current
opção de exibiçãoQuando chamado com
--show-current
,git branch
imprimirá o nome da filial atual e será encerrado.
Somente o nome real é impresso, semrefs/heads
.
No estado HEAD desanexado, nada é produzido.Destinado a scripts e uso interativo / informativo.
Ao contráriogit branch --list
, nenhuma filtragem é necessária apenas para obter o nome da ramificação.
Você pode estar interessado na saída de
git symbolic-ref HEAD
Em particular, dependendo das suas necessidades e layout, você pode querer fazer
basename $(git symbolic-ref HEAD)
ou
git symbolic-ref HEAD | cut -d/ -f3-
e, novamente, há o .git/HEAD
arquivo que também pode ser do seu interesse.
git rev-parse --symbolic-full-name
para git symbolic-ref
.
basename
ou cut
; use BR=${BR#refs/heads/}
(onde BR é o nome da variável da qual você salvou a saída git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
também pode fazer
Pelo que sei, não há como mostrar nativamente apenas a ramificação atual no Git, então eu tenho usado:
git branch | grep '*'
grep '*'
é nominalmente um erro de sintaxe. Você provavelmente quer git branch | sed -n 's/^\* //p'
mesmo assim. Ou, na verdade, o que o OP postou em primeiro lugar, o que equivale à mesma coisa.
grep '*'
nominalmente é um erro de sintaxe?
'*'
é uma expressão regular e, como tal, é inválida. Você provavelmente deseja usar '[*]'
(ou seja, caractere em *
vez de operador "zero ou mais vezes").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Eu acho que isso deve ser rápido e pode ser usado com uma API Python:
git branch --contains HEAD
* master
estou a usar
/etc/bash_completion.d/git
Ele veio com o Git e fornece um prompt com o nome da ramificação e a conclusão do argumento.
$ source /etc//bash_completion.d/git-prompt
arquivo pode ter um nome diferente em diferentes sistemas. (Nota: source
palavra-chave é o mesmo que apenas .
(dot) em bash.)
Para echo $(__git_ps1)
garantir a integridade, pelo menos no Linux, você deve fornecer o nome da ramificação atual entre parênteses.
Isso pode ser útil em alguns cenários, pois não é um comando Git (enquanto depende do Git), principalmente para configurar o prompt de comando do Bash para exibir a ramificação atual .
Por exemplo:
/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>
Alguém pode achar isso ( ) útil. O ramo atual é mostrado com uma marca *.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