Número de confirmaciones en la twig en git

Estoy escribiendo un pequeño script y quiero saber cuántas confirmaciones hice en una sucursal actual desde que se creó.

En este ejemplo, tendría 2 commits hechos en child :

 git checkout master git checkout -b child ... git commit -a ... git commit -a 

Entonces, lo que quiero es

 commit_number = ... echo $commit_number 

Gracias por tu ayuda.

Git puede proporcionarle el número de confirmaciones sin más secuencias de commands shell.

 git rev-list master.. --count 

rev-list es un command semi oculto (no incluido en la git help ) que se utiliza para trabajar con revisiones.

Como master.. --count los commits desde la base del master y la twig actual hasta la twig actual, --count le dará el conteo de ellos.

Si en cambio desea tener el número de confirmaciones entre las dos revisiones, usaría master... Para elaborar: entre como desde el maestro hasta el ancestro común más reciente de maestro y la twig actual (HEAD), y hasta la twig actual de nuevo. Si visualizas el historial de compromisos como un tree, deberías poder seguir las dos twigs del antecesor común. master.. por otro lado solo contará una de las dos twigs.

Entonces, si quieres usar master.. o master... depende de si quieres saber cuántos commits hiciste en tu bifurcación desde que la dividiste ( master.. ), o la diferencia entre el master actual y la sucursal, el número de confirmaciones en el maestro y la sucursal desde que se dividió la sucursal.

Asumiendo que se ramificó desde el maestro, maestro … su master..yourbranch le da el range de confirmaciones que están en su yourbranch pero no en el maestro.

Entonces solo tiene que enumerarlos una línea cada uno y contar el número de líneas:

 git log master..yourbranch --pretty=oneline | wc -l 

Actualización : git rev-list ahora tiene --count :

 git rev-list --count master.. 

Con versiones anteriores de Git:

 git rev-list master.. |wc -l 

rev-list enumera las revisiones, y el master.. hace reference a las confirmaciones ya que el HEAD actual divergió del master .