¿Cómo obtengo solo la twig de un command Git?

Posible duplicado:
Muestra solo la twig actual en Git

Estoy cambiando mi monótono DVCS a git. En mi configuration de compilation, tengo qmake get la revisión actual y la twig actual (porque están comstackdos en buildbot) para que pueda usarse como definición.

exists(_MTN):DEFINES += BUILDREVISION=\\\"$$system(mtn automate get_base_revision_id)\\\" else:DEFINES += BUILDREVISION=\\\"NOT \ BUILT \ FROM \ SOURCE \ REPOSITORY\\\" # Check which branch we are building exists(_MTN):DEFINES += BUILDBRANCH=\\\"$$system(mtn au get_option branch)\\\" else:DEFINES += BUILDBRANCH=\\\"UNKNOWN\\\" 

En git puedo hacer:

 exists(.git):DEFINES += BUILDREVISION=\\\"$$system(git rev-parse HEAD)\\\" else:DEFINES += BUILDREVISION=\\\"NOT \ BUILT \ FROM \ SOURCE \ REPOSITORY\\\" # Check which branch we are building exists(.git):DEFINES += BUILDBRANCH=\\\"$$system(git show-branch --current)\\\" else:DEFINES += BUILDBRANCH=\\\"UNKNOWN\\\" 

Mi problema es que "git show-branch – current" tiene el post de confirmación y un nuevo carácter de línea, que no le gusta a mi comstackdor. ¿Cómo puedo hacer que Git sea más sucinto?

Lo siguiente funciona para mí:

 $ git rev-parse --symbolic-full-name --abbrev-ref HEAD master 

Si no estás en ninguna twig (es decir, has separado HEAD), esto simplemente devolverá HEAD , pero suena como si en tu caso de uso siempre esperas estar en una twig.

Actualización: de hecho es incluso más simple, puedes hacer: git rev-parse --abbrev-ref HEAD

Ningún command git le proporciona solo la twig actual, por lo que debe modificar su salida para extraerla:

 git branch --no-color 2> /dev/null | grep "*" | sed s/*\ // 1 2 3 

Explicación:

  1. get list de sucursales
  2. select la twig actual, con el prefijo *
  3. eliminar el *
 cat .git/HEAD | sed 's/.*\///' 

La parte de sed 's/.*\///' elimina el "ref: refs / heads /" del principio de la línea.