2010-09-21 12 views

Respuesta

15

emitirá el ser rastreado a distancia:

git config branch.<branchname>.remote 

emitirá el árbitro está realizando el seguimiento en ese remoto:

git config branch.<branchname>.merge 

no creo que hay un comando combinado que emitirá tanto juntos (al menos dentro de Git normal, siempre puedes hacer los tuyos).


Por ejemplo, para un master rama local:

$ git config branch.master.remote 
origin 
$ git config branch.master.merge 
refs/heads/master 
+9

Con las versiones recientes de git, puede emitir el nombre de la rama de seguimiento remoto para su rama actual con 'git rev-parse --symbolic-full-name @ {u}'. Emite algo así como refs/remotes/origin/master. Si ignora el bit "refs/remotes", esto es exactamente lo que se solicitó. –

+0

Buen consejo Kevin. :) – Amber

+0

@Kevin Ballard: ¿podrías publicar esa sugerencia como una nueva respuesta? Es muy útil, y no lo suficientemente importante en este momento, creo que ... –

5
git config --global alias.show-upstream '!sh -c '\'' 

    test -n "$1" || set -- HEAD 
    set -- "$(git rev-parse --symbolic-full-name "$1")" 
    git for-each-ref --format="%(upstream:short)" "$1" 


'\'' -' 

git show-upstream 
git show-upstream HEAD 
git show-upstream some/local/branch 
22

Según la petición de Mark Longair, mi comentario anterior ahora se reproduce como una respuesta.

Con las versiones recientes de git, puede emitir el nombre de la rama de seguimiento remoto para su rama actual con git rev-parse --symbolic-full-name @{u}. Emite algo así como refs/remotes/origin/master.

Si usted va un paso más allá y utilizar la bandera --abbrev-ref, como en git rev-parse --symbolic-full-name --abbrev-ref @{u}, se tira fuera el bit refs/remotes/ y lo dejan con sólo el nombre de la rama corta, como origin/master.

+0

Otra forma es '% git para-cada-ref --format = '% (aguas arriba: corto)' $ (git symbolic-ref -q HEAD) ', pero me gusta más tuyo. – cdunn2001

+0

encontró un escenario donde este truco no funciona: renombro la rama local con git branch -m y luego la presiono para crear una nueva rama remota; ahora, después de eso, el valor devuelto por su comando (git rev-parse --symbolic-full-name @ {u}) es el nombre de la rama anterior (la rama remota que estaba antes de renombrar la sucursal local) - hubiera esperado el nombre de la nueva rama remota. – MichaelMoser

+2

@MichaelMoser: cambió el nombre de la sucursal local y lo presionó, pero no actualizó la información de seguimiento en sentido ascendente. Puede usar el indicador '-u' para' git push' para cambiar la información de seguimiento en sentido ascendente. –

2

A partir de Git 1.8.3 ahora se puede hacer esto:

git branch -vv 

muy conveniente, ya que muestra la rama de seguimiento para todas las ramas locales a la vez, pero no es adecuado para secuencias de comandos.

Cuestiones relacionadas