É possível listar todos os usuários que contribuíram para um projeto (usuários que fizeram confirmações) no Git?
Alguma estatística adicional?
É possível listar todos os usuários que contribuíram para um projeto (usuários que fizeram confirmações) no Git?
Alguma estatística adicional?
Respostas:
Para mostrar todos os usuários e emails, e o número de confirmações no ramo ATUAL:
git shortlog --summary --numbered --email
Ou simplesmente:
git shortlog -sne
Para mostrar aos usuários de todas as ramificações (não apenas as da ramificação atual), é necessário adicionar o --allsinalizador:
git shortlog -sne --all
-e.
--allflag
git shortlog --summary --numbered <pathToFile>
Se você quiser ser mais específico na lista (encontre uma lista de committer e autor exclusivos), você pode usar git log:
git log --pretty="%an %ae%n%cn %ce" | sort | uniq
%an nome do autor%ae email do autor%n nova linha%cn nome do committer%ce email do autorOutros espaços reservados são descritos na bonita documentação de impressão degit log .
%nnão faz muito sentido em combinação com (baseado em linhas) sort, faz? A linha registra o nome do autor / committer / e-mail em linhas separadas, mas os tipos ao longo de toda a saída ...
Você pode tentar isso:
git log | grep Author: | sort | uniq
(usuários que fizeram confirmações)
Nota: por padrão, git shortloggrupos confirmados por autores .
Se você precisar agrupá-los por committers, precisará do Git 2.12 (Q1 2017)
git shortlog -snc
Veja commit 03f4082 (16 de dezembro de 2016) por Jeff King ( peff) .
Veja commit fbfda15 (11 de outubro de 2016) por Linus Torvalds ( torvalds) .
(Mesclado por Junio C Hamano - gitster- na confirmação ad1b4e2 , 27 de dezembro de 2016)
O próprio Linus Torvalds apresenta este recurso:
shortlog: agrupar por informações do committerEm algumas situações, convém agrupar as confirmações não por autor, mas por confirmação.
Por exemplo, quando eu apenas queria pesquisar o que ainda falta
linux-nextna janela de mesclagem atual, não me importo tanto com quem escreveu um patch, como com o quegit treeele veio, o que geralmente se resume a "quem comprometeu isto".Portanto, faça com que o git shortlog use uma opção "
-c" ou "--committer" para mudar o agrupamento para isso.
Outra opção pode ser:
git log --format='%aN' | sort -u
Ainda não testei, mas isso parece muito bom para as estatísticas do projeto de um repositório Git: https://github.com/visionmedia/git-extras
Confira o bincatálogo para ver os diferentes scripts.
Por exemplo, o git-countscript (contagem de confirmação por confirmador):
git shortlog -n $@ | grep "):" | sed 's|:||'
Ótimas respostas de @ pedro-nascimento, de @mic_e e outros já resolvem o problema.
Além disso, você pode adicionar a seguinte linha ao seu .gitconfig
contributors = shortlog -e --summary --numbered
ou no tipo de casca
git config --global alias.contributors 'shortlog -e --summary --numbered'
E depois disso, você pode simplesmente invocar: git contributors
git contributors
Você pode experimentar um pacote incrível chamado git-extras . Especificamente, os comandos git-summary , git-count e talvez outros .
git shortlog -sn HEAD