
ojo de halcón
Soy consciente de que las ramas en realidad no almacenan información del creador, y son solo un indicador de una confirmación.
Mi objetivo es poder limpiar mis sucursales antiguas que se han fusionado con la sucursal principal y enumerar las sucursales donde esto tampoco se ha hecho. (Una limpieza).
Esto es diferente a “buscar ramas no fusionadas” porque también quiero encontrar ramas fusionadas y quiero hacerlo por autor.
Mi pregunta es: ¿Hay una secuencia de comandos para enumerar las ramas de git creadas por mí?

Habilidadzore
Un poco tarde para la fiesta aquí, pero este es el mejor resultado en Google cuando se busca “listar rama de git para autor”.
Una línea para encontrar sus sucursales remotas en git es:
git branch -r | xargs -L1 git --no-pager show -s --oneline --author="$(git config user.name)"
git rama -r – enumera todas las sucursales remotas.
xargs -L1 – convierte el resultado del comando anterior en argumentos para el siguiente comando.
mostrar – git show, muestra varios tipos de objetos en git. En este caso, mostrará la última confirmación en cada rama, con la diferencia completa.
La bandera -s suprime la salida diferencial.
La bandera –una línea condensa la información de confirmación en una sola línea.
La bandera –author=”$(git config usuario.nombre)” solo muestra las confirmaciones para el usuario actual de git.
La bandera –sin buscapersonas ejecuta git sin un buscapersonas. Sin este indicador, cada confirmación del resultado se abrirá en su propia instancia de buscapersonas, que podría funcionar dependiendo de su buscapersonas.
El resultado final será algo como esto:
efbd5d738b (origin/feature/A) commit feature A
297e83d9a6 (origin/feature/B) commit feature B
951f6638de (origin/test/A) commit test A
307d16741b (origin/master) latest master commit
Tenga en cuenta que la lista contendrá ramas maestras y de desarrollo si el autor dado es el último en confirmar estas ramas.
En cuanto a la versión 2.23 de Git, simplemente puede escribir:
git branch
y le dará la lista de la lista local de sucursales. Recuerda que también incluirá master
y otros que has fusionado. Para filtrar estos tubos el resultado con egrep -v "(^\*|master|development)
Si quieres incluir los mandos a distancia puedes hacerlo:
git for-each-ref --format=" %(authorname) %09 %(refname)" --sort=authorname | egrep -v "(^\*|master|development)"| grep 'Your Name'
para la eliminación, tubo xargs git branch -D

eric
Como una ligera condensación de la respuesta anterior de SachinSunny, puede usar las funciones de expresión regular de grep para lograr un comando más simple:
git branch --merged | grep -Pv "\*|master|dev" | xargs -n 1 git branch -d

paquete de matematicas
Prácticamente el mismo comando que la respuesta aceptada pero más conveniente con | while read
git for-each-ref --format="%(authorname),%(refname:lstrip=3),%(refname:short)" --sort=authorname | while IFS=',' read author branch remote_branch; do
printf "%20s | %40s | %s\n" "$author" "$branch" "$remote_branch"
done
Producción:

El título y el cuerpo de su pregunta parecen contradictorios: ¿Desea que usted cree sucursales (que no creo que pueda) o desea enumerar sucursales no fusionadas? ¿O una combinación de ambos?
– morxa
16 de marzo de 2016 a las 3:56
Posible duplicado de git encontrando ramas no fusionadas
– gzh
16 de marzo de 2016 a las 4:09
Quiero ambas. Quiero todas las ramas creadas por mí, fusionadas o no fusionadas.
– ojo de halcón
16 de marzo de 2016 a las 4:50
No hay información sobre quién creó ninguna rama en git. Período. La respuesta tan corta es No, no hay ninguno.
–Román Valeri
4 abr a las 13:20