Pregunta ¿Cómo consigo que el Git commit cuente?


Me gustaría obtener el número de confirmaciones de mi repositorio de Git, un poco como los números de revisión de SVN.

El objetivo es usarlo como un número de construcción único e incrementado.

Actualmente me gusta eso, en Unix / Cygwin / msysGit:

git log --pretty=format:'' | wc -l

Pero siento que es un poco hack.

¿Hay una mejor manera de hacer eso? Sería genial si realmente no necesitara wc o incluso Git, por lo que podría funcionar en un Windows desnudo. Solo lea un archivo o una estructura de directorio ...


587
2018-03-24 13:38


origen


Respuestas:


Para obtener un conteo de compromiso para una revisión (HEAD, master, un hash de confirmación):

git rev-list --count <revision>

Para obtener la cuenta de compromiso en todas las ramas:

git rev-list --all --count

Recomiendo no usar esto para el identificador de compilación, pero si es necesario, probablemente sea mejor utilizar el recuento de la rama con la que está compilando. De esa manera, la misma revisión siempre tendrá el mismo número. Si usa el conteo para todas las ramas, la actividad en otras ramas podría cambiar el número.


895
2018-03-09 19:43



git shortlog es una forma.


131
2017-11-14 07:52



git rev-list HEAD --count

git rev-list

git rev-list <commit> : List commits que son alcanzables siguiendo los enlaces principales de la confirmación dada (en este caso, CABEZA)

--count : Imprima un número que indique cuántos compromisos se han enumerado y suprima todos los demás resultados.


86
2018-03-24 14:08



Este comando devuelve el recuento de confirmaciones agrupadas por committers:

git shortlog -s

git shortlog -s
14 John lennon
9  Janis Joplin

65
2018-03-24 13:54



Si está buscando un identificador único y todavía bastante legible para commits, git describe podría ser lo adecuado para ti.


52
2017-07-15 21:52



No eres el primero en pensar en un "número de revisión" en Git, pero 'wc"es bastante peligroso, ya que el compromiso se puede borrar o aplastar, y la historia revisitada.

El "número de revisión" fue especialmente importante para Subversion ya que fue necesario en caso de fusión (SVN1.5 y 1.6 han mejorado en ese frente).

Podría terminar con un enlace precompromiso que incluiría un número de revisión en el comentario, con un algoritmo sin involucrar mirando hacia arriba todas historial de una sucursal para determinar el número correcto.

Bazar en realidad se le ocurrió tal algoritmo , y puede ser un buen punto de partida para lo que quieres hacer.

(Como La respuesta de Bombe señala, Git tiene en realidad un algoritmo propio, basado en la última etiqueta, más el número de confirmaciones, más un poco de una clave SHA-1). Debería ver (y remontar) su respuesta si le funciona.


Para ilustrar La idea de Aaron, tú también puedes añada el hash de confirmación de Git en el archivo de "información" de una aplicación usted está distribuyendo con su aplicación.

De esa forma, el cuadro de aproximadamente se vería así:

About box

El número de aplicación es parte del compromiso, pero el "archivo" de información de la "aplicación" se genera durante el proceso de empaquetamiento, vinculando efectivamente un aplicativo número de compilación a una revisión técnica carné de identidad.


32
2018-02-06 15:38



Para convertirlo en una variable, la forma más fácil es:

export GIT_REV_COUNT=`git rev-list --all --count`

20
2017-11-25 07:59



Una forma simple es:

 git log --oneline | wc -l

onelineasegura que.


17
2017-12-26 09:09



El shortlog de Git es una forma de obtener los detalles de compromiso:

git shortlog -s -n

Esto dará la cantidad de confirmaciones seguidas por el nombre del autor. La opción -s elimina todos los mensajes de confirmación para cada confirmación que realizó el autor. Elimine la misma opción si también desea ver los mensajes de confirmación. La opción -n se usa para ordenar la lista completa. Espero que esto ayude.


14
2018-03-24 15:22



U solo puede usar:

git shortlog -s -n

Resultado:

 827  user one
    15  user two
     2  Gest 

13
2018-03-24 13:59



git rev-parse --short HEAD


7
2017-10-26 14:50