Determine qué twigs remotas se pueden eliminar de forma segura

Tengo un montón de twigs de git remotas:

remotes/origin/<branchname> etc …

Sé que la mayoría de ellos probablemente puedan ser eliminados.

  1. ¿Cuál es la mejor manera de ver cuáles se fusionaron completamente en el maestro? Estos quiero eliminar primero.
  2. ¿Cuál es la mejor manera de ver los commits sin combinar para el rest de las sucursales?

¿ git branch -r --merged master hace lo que quieres?

Una forma de get esta información sería:

 git branch -vv 

Esto mostrará si cada twig está actualizada, por delante o por detrás, pero está diseñada para que los humanos la lean, por lo que no es fácil de analizar para nuevas secuencias de commands. Puede haber mejores forms si necesita tomar esa ruta.

Echar un vistazo a una de las GUI podría indicarle visualmente qué twigs no están fusionadas, también, pero dependiendo de cuántas twigs tenga, eso podría ser tedioso.

Editar: Otra opción sería esta:

 git show-branch --independent | xargs git name-rev 

Eso esencialmente muestra qué twigs no son accesibles desde cualquiera de las otras twigs, pero también podría include el master en la list, por lo que es posible que deba podar la salida un poco …

Este command de git log es lo que uso para ver cómo las twigs se relacionan entre sí.

log –oneline –decorate = short –graph –all –simplify-by-decoration

y para agregar los commits sin decorar a los de arriba simplemente elimine el --simplify-by-decoration

log –oneline –decorate = short –graph –todo

Además, no es una respuesta directa a su pregunta, sino que está relacionada con ver qué compromisos necesitan atención, esta versión muestra solo las confirmaciones en las twigs con seguimiento de romote que no se han enviado.

log –oneline –decorate = short –graph –all –branches –not –remotes

Mi primera opción sería simplemente intentar eliminarlo con git branch -d (minúscula d). Eso fallará si la twig no se ha fusionado por completo en.