Enumerar compromisos sin apresurar en todas las twigs

Actualmente estoy trabajando en un proyecto con un equipo. Este proyecto tiene muchas twigs desarrolladas en paralelo.

Aquí está el problema que encontré: estoy trabajando en varias twigs, comprometiendo tanto como sea posible. Y aparentemente, a veces me olvido de enviar los commits una vez que terminé de trabajar en una twig. Esto lleva a tener cambios no deseados durante mucho time, y por supuesto, otros miembros del equipo trabajarían en estas twigs "no fijadas" y podría causar problemas. Y en ningún momento, mientras trabajaba en otras twigs, git me dice que he astackdo commits en otras twigs distintas a la actual.

¿Hay algún command, similar a git cherry -v , que indique commits sin apuntar en todas las twigs?

Me di count de que podía usar git cherry -v origin/branchA branchA para mostrar la confirmación no utilizada de branchA desde cualquier twig. Es bastante parecido a lo que estoy buscando, pero lo quiero para todas las twigs al mismo time. ¿Hay alguna manera de generalizarlo en todas las twigs? (No espero recordar en qué twig me olvidé de presionar)

Podrías escribir un script simple:

(En tu .bashrc)

 alias git-list-unpushed='git for-each-ref --format "%(refname)" | grep "refs/remotes" | sed "s@refs/remotes/@@" | while read branch; do echo "$branch"; git cherry -v "$branch" "${branch/origin\//}"; done' 

A continuación, puede ejecutar git-list-unpushed para ver un resumen de todas las confirmaciones sin distribuir para cada twig

Basado en la idea de edi9999, creé el siguiente script:

 #!/bin/sh branches=$(git for-each-ref --format='%(upstream:short):%(refname:short)' refs/heads) for raw_branch in $branches; do remote_branch=$(cut -d ':' -f 1 <<< "$raw_branch") local_branch=$(cut -d ':' -f 2 <<< "$raw_branch") echo $local_branch if [ "x$remote_branch" == "x" ]; then echo WARNING: No remote branch! else git cherry -v "$remote_branch" "$local_branch" fi echo done 

Como el : siempre está presente, el cut debe ser bueno.