Pregunta ¿Cómo obtener el nombre de la sucursal actual en Git?


Soy de un fondo de Subversion y, cuando tenía una sucursal, sabía en lo que estaba trabajando con "Estos archivos de trabajo apuntan a esta rama".

Pero con Git no estoy seguro de cuándo estoy editando un archivo en NetBeans o Notepad ++, ya sea que esté vinculado al maestro u otra rama.

No hay problema con git en bash, me dice lo que estoy haciendo.


1711
2018-06-05 20:13


origen


Respuestas:


git branch

debe mostrar todas las sucursales locales de su repositorio. La rama con estrella es tu rama actual.


1295
2018-06-05 20:17



git rev-parse --abbrev-ref HEAD

Eso mostrará la rama actual.

Referencia:


3636
2017-08-27 12:33



Usted también tiene git symbolic-ref HEAD que muestra el refspec completo.

Para mostrar solo el nombre de la sucursal en Git v1.8 y posterior (gracias a Greg por señalarlo):

$ git symbolic-ref --short HEAD

En Git v1.7 + también puedes hacer:

$ git rev-parse --abbrev-ref HEAD

Ambos deben dar el mismo nombre de sucursal si se encuentra en una sucursal. Si está en una cabeza separada, las respuestas difieren.

Nota:

En un cliente anterior, esto parece funcionar:

$ git symbolic-ref HEAD | sed -e "s/^refs\/heads\///"

- Darien 26. mar 2014


399
2017-08-08 15:55



Para mi propia referencia (pero podría ser útil para otros) hice una descripción general de la mayoría de las técnicas (línea de comandos básica) mencionadas en este hilo, cada una aplicada a varios casos de uso: HEAD es (apuntando a):

  • rama local (maestro)
  • bifurcación de seguimiento remoto, en sincronización con la sucursal local (origen / maestro en la misma confirmación que el maestro)
  • sucursal de seguimiento remoto, no sincronizada con una sucursal local (origin / feature-foo)
  • etiqueta (v1.2.3)
  • cabeza separada general (ninguna de las anteriores)

Resultados:

  • git branch | sed -n '/\* /s///p'
    • sucursal local: master
    • rama de seguimiento remoto (en sincronización): (detached from origin/master)
    • rama de seguimiento remoto (no sincronizada): (detached from origin/feature-foo)
    • etiqueta: (detached from v1.2.3)
    • cabeza separada general: (detached from 285f294)
  • git status | head -1
    • sucursal local: # On branch master
    • rama de seguimiento remoto (en sincronización): # HEAD detached at origin/master
    • rama de seguimiento remoto (no sincronizada): # HEAD detached at origin/feature-foo
    • etiqueta: # HEAD detached at v1.2.3
    • cabeza separada general: # HEAD detached at 285f294
  • git describe --all
    • sucursal local: heads/master
    • rama de seguimiento remoto (en sincronización): heads/master (Nota: no  remotes/origin/master)
    • rama de seguimiento remoto (no sincronizada): remotes/origin/feature-foo
    • etiqueta: v1.2.3
    • cabeza separada general: v1.0.6-5-g2393761
  • cat .git/HEAD:
    • sucursal local: ref: refs/heads/master
    • todos los demás casos de uso: SHA del compromiso correspondiente
  • git rev-parse --abbrev-ref HEAD
    • sucursal local: master
    • todos los otros casos de uso: HEAD
  • git symbolic-ref --short HEAD
    • sucursal local: master
    • todos los otros casos de uso: fatal: ref HEAD is not a symbolic ref

(Para su información, esto fue hecho con la versión de Git 1.8.3.1)


167
2017-10-25 08:53



Una alternativa más:

git name-rev --name-only HEAD

118
2017-11-02 19:17



Lo suficientemente simple, lo tengo en un trazador de líneas (bash)

git branch | sed -n '/\* /s///p'

(crédito: Expiación limitada)

Y mientras estoy allí, el único trazador de líneas para obtener la rama de seguimiento remoto (si existe)

git rev-parse --symbolic-full-name --abbrev-ref @{u}

87
2018-04-04 15:20



Simplemente puede escribir en línea de comando (consola) en Linux, en el directorio del repositorio:

$ git status

y verá un texto, entre los que se encuentra algo similar a:

...
On branch master
...

lo que significa que estás actualmente en master rama. Si está editando cualquier archivo en ese momento y está ubicado en el mismo repositorio local (directorio local que contiene los archivos que están bajo la administración de control de versiones de Git), está editando archivos en esta rama.


48
2018-06-05 20:31



git symbolic-ref -q --short HEAD

Lo uso en scripts que necesitan el nombre de la sucursal actual. Le mostrará la referencia simbólica corta actual a HEAD, que será su nombre de sucursal actual.


26
2017-10-02 22:09



git branch | grep -e "^*" | cut -d' ' -f 2

mostrará solo el nombre de la rama


24
2018-06-14 13:08