Git: ¿Cómo enumero solo las sucursales locales?


935

git branch -a muestra sucursales remotas y locales.

git branch -r muestra ramas remotas.

¿Hay alguna manera de enumerar solo las sucursales locales?

Respuestas:


1444

Solo git branchsin opciones.

Desde la página del manual:

Sin argumentos, las ramas existentes se enumeran y la rama actual se resaltará con un asterisco.


25
Esperaba encontrar una manera de enumerar las sucursales locales que no tienen una sucursal remota correspondiente.
Steve Crane

55
No del todo, pero las respuestas a mi pregunta ¿Cómo enumero las sucursales locales que no tienen sucursal remota ?
Steve Crane

3
@ c00kiemon5ter ¡Me encanta cómo encontraste una forma de obtener muchos puntos de todos modos! Muy divertido.
Abram

44
¿Cómo es esta la respuesta correcta a lo que se preguntó ("... para enumerar * solo las sucursales locales ...") ???
Wagner da Silva el

77
@ gr4viton: En los dialectos del inglés con los que estoy familiarizado, "enumerar solo las ramas locales" generalmente se analiza como "enumerar solo las ramas que son locales". (Para decir "enumerar las ramas que son solo locales", yo diría "enumerar las ramas solo locales".)
Mathieu K.

221

solo el comando simple

git branch

55
Esta respuesta tiene exactamente la misma marca de tiempo que la respuesta aceptada. La respuesta aceptada debe estar adelante en la parte de milisegundos :)
RBT

44
@RBT Pase el mouse por los tiempos. Esta respuesta fue 9 segundos más rápida.
Kevin Workman

1
¡c00kiemon5ter merece el crédito por la respuesta!
skydev

75

git branch -a- Todas las ramas.

git branch -r- Solo ramas remotas .

git branch -l o git branch- Solo sucursales locales .


Para mí, el formato de esta respuesta sugiere los -lsoportes --local, mientras que en realidad es --list. Sugeriría eliminarlo para evitar esa confusión: técnicamente todos los comandos en esta respuesta podrían usar -ly aún así devolverían los mismos resultados.
Thibaud Colas

34

Si el asterisco inicial es un problema, canalizo el git branchsiguiente

git branch | awk -F ' +' '! /\(no branch\)/ {print $2}'

Esto también elimina la línea '(sin rama)' que aparece cuando se ha separado la cabeza.


1
Tuve que modificar esto git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'para git versión 1.9.1.
iurii

66
cut -c 3-es una opción más fácil
Alexey

33

Una de las formas más directas de hacerlo es

git for-each-ref --format='%(refname:short)' refs/heads/

Esto funciona perfectamente para los scripts también.


12

Aquí le mostramos cómo enumerar sucursales locales que no tienen una sucursal remota en origen con el mismo nombre:

git branch | sed 's|* |  |' | sort > local
git branch -r | sed 's|origin/||' | sort > remote
comm -23 local remote

3
Niza, también en línea: comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
gr4viton

10

Otra forma de obtener una lista de sucursal local es:

git branch -a | grep -v 'remotes'

4

Hay una gran respuesta a una publicación sobre cómo eliminar sucursales locales solamente. En él, el compañero crea un comando para enumerar las ramas locales:

git branch -vv | cut -c 3- | awk '$3 !~/\[/ { print $1 }'

La respuesta tiene una gran explicación sobre cómo se derivó este comando, por lo que te sugiero que vayas y leas esa publicación.


Gracias por vincular la respuesta. Necesitaba algo para enumerar las sucursales locales que NO rastrean un control remoto. Este es el único que hace el trabajo.
JuroOravec

2

Para complementar la respuesta de @ gertvdijk: estoy agregando algunas capturas de pantalla en caso de que ayude a alguien rápido.

En mi git bash shell

rama de git

El comando sin ningún parámetro muestra todas mis ramas locales. La rama actual que está actualmente desprotegida se muestra en un color diferente (verde) junto con un prefijo de asterisco (*) que es realmente intuitivo.

ingrese la descripción de la imagen aquí

Cuando intentas ver todas las ramas, incluidas las ramas remotas, usando

git branch -a

El comando y las ramas remotas que aún no están desprotegidas se muestran en color rojo:

ingrese la descripción de la imagen aquí


1
¿Mil palabras de las cuales no se puede copiar?
Tony Adams

2
@ TonyAdams Lo siento si me falta algo, pero los dos comandos cuya salida que he mostrado en las imágenes se mencionaron en fondo gris (formato de código) en la publicación. No importa, he mejorado el formato de la publicación para que sea aún más legible. Agradecemos sus comentarios.
RBT
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.