Enumera las twigs de git que se pueden borrar de forma segura

Si hace git branch -d branchname , eliminará el nombre de la twig si hace reference a una confirmación anterior en su historial, o le dirá que necesita usar -D contrario. A menudo creo twigs que luego se presionan para dominar y, por lo tanto, pueden eliminarse con este criterio. ¿Existe una manera fácil de enumerar todas las twigs que apuntan a las confirmaciones anteriores de maestro, es decir, twigs a las que a git no le importaría eliminar con solo la opción -d ? Puntos de bonificación si funciona para todas las twigs a la vez, no solo para el maestro.

Tengo 82 sucursales locales y sé que bastantes, si no la mayoría, pueden eliminarse de manera segura, pero no quiero tomar el time para revisar cada uno de ellos para tratar de hacerlo.

Tratar:

 $ git checkout master # or whatever branch you might compare against ... $ git branch --no-merged $ git branch --merged 

De la documentation de git branch :

Con las twigs fusionadas y únicas fusionadas en la confirmación nombrada (es decir, las twigs cuyas confirmaciones de punta son alcanzables desde la confirmación nombrada) se enumerarán. Con –no se fusionarán solo las twigs no fusionadas en la confirmación nombrada. Si falta el argumento, se establece por defecto en HEAD (es decir, la punta de la twig actual).

EDITAR:

para mostrar esto para cada twig, podrías hacer algo como esto:

ejemplo repo:

 o <--- experimental | o | o <--- next | o | o <--- master | o----o <--- broken | o | $ for branch in `git branch --no-color --verbose | \ sed -e 's/*//' | awk '{print $1}'`; \ do echo "[$branch]"; git checkout -q $branch; git branch --merged; done [broken] * broken [master] * master [next] master * next [experimental] master next * experimental 

git show-branch es una herramienta poco conocida pero bastante útil que muestra visualmente las confirmaciones que son exclusivas de cada twig. Puede ser difícil de descifrar al principio, pero una vez que entiendes la salida es bastante usable. Hay una breve pero buena introducción disponible.

DESCRIPCIÓN

  Shows the commit ancestry graph starting from the commits named with <rev>s or <globs>s (or all refs under refs/heads and/or refs/tags) semi-visually. It cannot show more than 29 branches and commits at a time.