Como criar um ranking de commiters no bash

Resposta curta:

git log | grep Author | sort | uniq -c | sort -n -r | head -n 20
20 maiores commiters do projeto git

O que fazem esses comandos?

git log

Mostra o log da branch atual do git

Resultado do git log na branch master do projeto git

| (pipe)

Pega o output do comando e joga como entrada do próximo comando. Nesse caso pega a saída do git log e coloca como entrada do grep

grep Author

Procura por “Author” no texto que foi dado como entrada. Nesse caso a entrada foi a saída do git log

git log | grep Author

sort

Ordena as linhas

git log | grep Author | sort

uniq -c

  • uniq retorna somente as linhas não duplicadas.
  • -c retorna o número de ocorrências de cada linha.
git log | grep Author | sort | uniq -c

sort -n -r

  • -n considera a ordenação como numérica.
  • -r reverte a ordenação, de crescente para decrescente.

head -n 20

Retorna as primeiras linhas. O -n é o número de linhas que vai ser retornado, nesse caso serão as primeiras 20 linhas.