Question Comment puis-je obtenir le nombre de commit Git?


J'aimerais avoir le nombre de validations de mon dépôt Git, un peu comme les numéros de révision SVN.

L'objectif est de l'utiliser comme un numéro de build unique et incrémentiel.

Je fais actuellement comme ça, sur Unix / Cygwin / msysGit:

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

Mais je pense que c'est un peu un hack.

Y a-t-il une meilleure façon de faire cela? Ce serait cool si je n'avais pas vraiment besoin wc ou même Git, de sorte qu'il pourrait fonctionner sur un Windows nu. Il suffit de lire un fichier ou une structure de répertoire ...


587
2018-03-24 13:38


origine


Réponses:


Pour obtenir un compte de validation pour une révision (HEAD, master, un hash de commit):

git rev-list --count <revision>

Pour obtenir le nombre de validations dans toutes les branches:

git rev-list --all --count

Je recommande de ne pas utiliser cet identifiant de construction, mais si vous le devez, il est probablement préférable d'utiliser le compteur pour la branche que vous construisez. De cette façon, la même révision aura toujours le même nombre. Si vous utilisez le nombre pour toutes les branches, l'activité sur les autres branches peut changer le nombre.


895
2018-03-09 19:43



git shortlog est un moyen.


131
2017-11-14 07:52



git rev-list HEAD --count

git rev-list

git rev-list <commit> : Commandes de liste qui sont accessibles en suivant les liens parents de la validation donnée (dans ce cas, TÊTE).

--count : Imprime un nombre indiquant le nombre de validations répertoriées et supprime toutes les autres sorties.


86
2018-03-24 14:08



Cette commande renvoie le nombre de validations regroupées par committers:

git shortlog -s

git shortlog -s
14 John lennon
9  Janis Joplin

65
2018-03-24 13:54



Si vous recherchez un identifiant unique et encore assez lisible pour les validations, git décrire pourrait être juste la chose pour vous.


52
2017-07-15 21:52



Vous n'êtes pas le premier à penser à un "numéro de révision" dans Git, mais 'wc'est assez dangereux, puisque commit peut être effacé ou écrasé, et l'histoire revisitée.

Le "numéro de révision" était particulièrement important pour Subversion puisqu'il était nécessaire en cas de fusion (SVN1.5 et 1.6 ont amélioré sur ce front).

Vous pourriez vous retrouver avec un hook de pré-commit qui inclurait un numéro de révision dans le commentaire, avec un algorithme ne pas impliquer regardant le tout histoire d'une branche pour déterminer le nombre correct.

Bazar en fait est venu avec un tel algorithme et cela peut être un bon point de départ pour ce que vous voulez faire.

(Comme La réponse de Bombe souligne, Git a en fait un algorithme propre, basé sur la dernière balise, plus le nombre de commits, plus un peu d'une clé SHA-1). Vous devriez voir (et augmenter) sa réponse si cela fonctionne pour vous.


Pour illustrer L'idée d'Aaron, vous pouvez aussi ajouter le hachage commit Git dans le fichier "info" d'une application vous distribuez avec votre application.

De cette façon, la boîte à propos de ressemblerait à:

About box

Le numéro applicatif fait partie de la validation, mais le fichier "info" de l'application est généré pendant le processus de mise en package, reliant efficacement un applicatif construire le numéro à une révision technique identifiant.


32
2018-02-06 15:38



Pour l'intégrer dans une variable, le plus simple est:

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

20
2017-11-25 07:59



Une manière simple est:

 git log --oneline | wc -l

onelines'assure que.


17
2017-12-26 09:09



Git shortlog est un moyen d'obtenir les détails de la validation:

git shortlog -s -n

Cela donnera le nombre de commits suivi du nom de l'auteur. L'option -s supprime tous les messages de validation pour chaque validation effectuée par l'auteur. Supprimez la même option si vous souhaitez voir les messages de validation également. L'option -n est utilisée pour trier la liste entière. J'espère que cela t'aides.


14
2018-03-24 15:22



U peut simplement utiliser:

git shortlog -s -n

Résultat :

 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