Eu já encontrei esta resposta: Número de confirmações no branch no git, mas isso pressupõe que o branch foi criado a partir do master.
Como posso contar o número de confirmações ao longo de uma ramificação sem confiar nessa suposição?
No SVN, isso é trivial, mas por algum motivo é realmente difícil de descobrir no git.
Respostas:
Para contar as confirmações da filial em que você está:
para uma filial
Se você deseja contar as confirmações em uma ramificação feita desde que você criou a ramificação
Isso conta todos os commits já feitos que não estão no nome do branch também.
Exemplos
Resultado: 3
Se o seu ramo vier de um ramo chamado
develop
:Resultado: 3
Ignorando Mesclagens
Se você mesclar outra ramificação na ramificação atual sem avanço rápido e fizer o acima, a mesclagem também será contada. Isso ocorre porque, para o git, uma mesclagem é um commit.
Se você não deseja contar essas confirmações, adicione
--no-merges
:fonte
git log
estão funcionando melhor do que qualquer outra sugestão.Para ver o total de confirmações, você pode fazer o que Peter sugeriu acima
E se você quiser ver o número de confirmações feitas por cada pessoa, tente esta linha
irá gerar uma saída como esta
fonte
Pode exigir uma versão relativamente recente do Git, mas isso funciona bem para mim:
Isso me fornece uma contagem exata de confirmações no ramo atual com base no mestre.
O comando na resposta de Pedro
git rev-list --count HEAD ^develop
inclui muito mais confirmações, 678 vs 97 no meu projeto atual.Meu histórico de consolidação é linear neste ramo, portanto, YMMV, mas ele me fornece a resposta exata que eu queria, que é "Quantas confirmações eu adicionei até agora neste ramo de recursos?".
fonte
A special notation "<commit1>..<commit2>" can be used as a short-hand for "^'<commit1>' <commit2>". For example, either of the following may be used interchangeably: $ git rev-list origin..HEAD $ git rev-list HEAD ^origin
git fetch upstream; BEHIND=$(git rev-list --count HEAD..upstream/master); git merge --ff-only upstream/master~$BEHIND;
não está fazendo fila. POR TRÁS é como 1800 quando, na realidade, nada maior que mesclar upstream / master ~ 400 produz mudanças. usar--no-merges
não é muito melhor, dá como 900. E se eu fizer uma mesclagem como essa com ~ 800, e a contagem da lista de rev é 1800, então eu faço uma mesclagem com ~ 790, eu tenho entre 6 e 28 contagens mais baixas em rev -Lista.Quantas confirmações foram feitas na ramificação atual desde o início do histórico, sem contar as confirmações de ramificações mescladas:
Na documentação git rev-list --help :
Nota: O clone raso reduzirá o tamanho do histórico. Por exemplo, se você clonar com
--depth 1
, retornará 1.número de confirmações feitas desde que alguma outra confirmação:
ou o mesmo:
ou use qualquer outra referência git :
Contagem confirmada desde o ano de 2018
01-01-2018, 01.01.2018, 01.01.2011 também funciona.
git rev-label
Eu escrevi um script para obter a revisão de versão do Git no formato
'$refname-c$count-g$short$_dirty'
que se expande paramaster-c137-gabd32ef
.A ajuda está incluída no próprio script.
fonte
E se
git log --pretty=oneline | wc -l
Isso deve contar com todos os commits da perspectiva do seu ramo atual.
fonte
Eu gosto de fazer
git shortlog -s -n --all
. Fornece uma lista de nomes e número de confirmações no estilo "cabeçalho".fonte
Uma maneira de fazer isso é listar o log da sua filial e contar as linhas.
fonte
Bem, a resposta selecionada não funciona se você bifurcada sua filial fora do ramo inespecífica (ou seja, não
master
oudevelop
).Aqui, ofereço uma outra maneira que estou usando nos meus
pre-push
ganchos Git.Para mais análises, visite o meu blog
fonte
Como o OP faz referência ao número de confirmações no branch no git , quero acrescentar que as respostas fornecidas também funcionam com qualquer outro branch, pelo menos desde a versão 2.17.1 do git (e aparentemente mais confiável do que a resposta de Peter van der Does):
funcionando corretamente:
O último comando fornece zero confirmações conforme o esperado, desde que eu criei a ramificação. O comando anterior me fornece o número real de confirmações no meu ramo de desenvolvimento menos as confirmações de mesclagem
não está funcionando corretamente:
Nos dois casos, obtenho o número de todas as confirmações no ramo de desenvolvimento e o mestre do qual os ramos (indiretamente) descendem.
fonte
Se você estiver usando um sistema UNIX, poderá fazer
fonte
Você também pode fazer o git log | confirmação grep | wc -l
e obter o resultado de volta
fonte
git log
saída, para que a confirmação seja contada duas vezes no resultado. Pior ainda, se a mensagem de confirmação contiver a palavra "confirmação" duas vezes em duas linhas separadas.