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:
*
*
cat .git/HEAD | sed 's/.*\///'
La parte de sed 's/.*\///'
elimina el "ref: refs / heads /" del principio de la línea.