Intenté buscar un comando Git especial para esto, pero no pude encontrar uno. ¿Hay algo más corto o más rápido que lo siguiente?
git branch | awk '/\*/ { print $2; }'
Intenté buscar un comando Git especial para esto, pero no pude encontrar uno. ¿Hay algo más corto o más rápido que lo siguiente?
git branch | awk '/\*/ { print $2; }'
Respuestas:
$ git rev-parse --abbrev-ref HEAD
master
Esto debería funcionar con Git 1.6.3 o más reciente.
HEAD
, no se esperamaster
En Git 1.8.1 puede usar el comando git symbolic-ref con la opción "--short":
$ git symbolic-ref HEAD
refs/heads/develop
$ git symbolic-ref --short HEAD
develop
fatal: ref HEAD is not a symbolic ref
al ejecutar esto como parte de una compilación de
Con Git 2.22 (Q2 2019), tendrá un enfoque más simple: git branch --show-current
.
Ver commit 0ecb1fc (25 de octubre de 2018) por Daniels Umanovskis ( umanovskis
) .
(Fusionada por Junio C Hamano - gitster
- en commit 3710f60 , 07 mar 2019)
branch
: introducir la--show-current
opción de visualizaciónCuando se llama con
--show-current
,git branch
imprimirá el nombre de la sucursal actual y finalizará.
Solo se imprime el nombre real, sinrefs/heads
.
En el estado HEAD separado, no se emite nada.Destinado tanto para scripting como para uso interactivo / informativo.
A diferenciagit branch --list
, no se necesita filtrado para obtener el nombre de la sucursal.
Te puede interesar la salida de
git symbolic-ref HEAD
En particular, dependiendo de sus necesidades y diseño, es posible que desee hacer
basename $(git symbolic-ref HEAD)
o
git symbolic-ref HEAD | cut -d/ -f3-
y luego nuevamente está el .git/HEAD
archivo que también puede ser de su interés.
git rev-parse --symbolic-full-name
a git symbolic-ref
.
basename
o cut
; use BR=${BR#refs/heads/}
(donde BR es el nombre de la variable de la que guardó la salida git symbolic-ref HEAD
).
git symbolic-ref --short HEAD
también
Por lo que puedo decir, no hay forma de mostrar de forma nativa solo la rama actual en Git, por lo que he estado usando:
git branch | grep '*'
grep '*'
nominalmente es un error de sintaxis. Probablemente quieras de git branch | sed -n 's/^\* //p'
todos modos. O, en realidad, lo que el OP publicó en primer lugar, lo que equivale a lo mismo.
grep '*'
es nominalmente un error de sintaxis?
'*'
es una expresión regular y, como tal, no es válida. Probablemente desee utilizar '[*]'
(es decir, el carácter en *
lugar del operador "cero o más veces").
grep '\*'
git branch | grep "*" | cut -d' ' -f2
Supongo que esto debería ser rápido y puede usarse con una API de Python:
git branch --contains HEAD
* master
Estoy usando
/etc/bash_completion.d/git
Llegó con Git y proporciona un mensaje con el nombre de la rama y la finalización del argumento.
$ source /etc//bash_completion.d/git-prompt
File puede ser nombrado de manera diferente en diferentes sistemas. (Nota: la source
palabra clave es lo mismo que solo .
(punto) en bash.)
Para completar, echo $(__git_ps1)
al menos en Linux, debería darle el nombre de la rama actual rodeada de paréntesis.
Esto puede ser útil en algunos escenarios, ya que no es un comando Git (aunque depende de Git), especialmente para configurar el símbolo del sistema Bash para mostrar la rama actual .
Por ejemplo:
/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>
Alguien puede encontrar esto ( ) útil. La rama actual se muestra con una 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