Respuestas:
Solo git branch
sin opciones.
Desde la página del manual:
Sin argumentos, las ramas existentes se enumeran y la rama actual se resaltará con un asterisco.
solo el comando simple
git branch
git branch -a
- Todas las ramas.
git branch -r
- Solo ramas remotas .
git branch -l
o git branch
- Solo sucursales locales .
-l
soportes --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 -l
y aún así devolverían los mismos resultados.
Si el asterisco inicial es un problema, canalizo el git branch
siguiente
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.
git branch | awk -F ' +' '$2 !~ /detached/ {print $2}'
para git versión 1.9.1.
cut -c 3-
es una opción más fácil
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.
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
comm -23 <(git branch | sed 's|* | |' | sort) <(git branch -r | sed 's|origin/||' | sort )
Otra forma de obtener una lista de sucursal local es:
git branch -a | grep -v 'remotes'
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.
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.
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: