Ao usar git log
, como posso filtrar por usuário para ver apenas confirmações desse usuário?
Ao usar git log
, como posso filtrar por usuário para ver apenas confirmações desse usuário?
Respostas:
Isso funciona para ambos git log
e gitk
- as 2 formas mais comuns de visualização de histórico.
Você não precisa usar o nome inteiro:
git log --author="Jon"
corresponderá a um commit feito por "Jonathan Smith"
git log --author=Jon
e
git log --author=Smith
também funcionaria. As aspas são opcionais se você não precisar de espaços.
Adicione --all
se você deseja pesquisar todos os ramos e não apenas os ancestrais do commit atual em seu repositório.
Você também pode corresponder facilmente a vários autores, pois a expressão regular é o mecanismo subjacente a esse filtro. Então, para listar confirmações de Jonathan ou Adam, você pode fazer o seguinte:
git log --author="\(Adam\)\|\(Jon\)"
Para excluir confirmações de um determinado autor ou conjunto de autores usando expressões regulares, conforme observado nesta pergunta , você pode usar um lookahead negativo em combinação com a --perl-regexp
opção:
git log --author='^(?!Adam|Jon).*$' --perl-regexp
Como alternativa, você pode excluir confirmações criadas por Adam usando bash
e canalizando:
git log --format='%H %an' |
grep -v Adam |
cut -d ' ' -f1 |
xargs -n1 git log -1
Se você deseja excluir confirmações confirmadas (mas não necessariamente criadas) por Adam, substitua %an
por %cn
. Mais detalhes sobre isso estão no meu blog aqui: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/
gitk
deixar de fora os pais cometem com outros autores? (Eles são mostrados com círculos brancos.) Por outro lado, git log --graph
não mostra o pai confirma; mostra apenas os commits do autor fornecido. Eu adoraria ver a mesma saída em gitk
. (Já verifiquei Preferências e Edit View - não poderia encontrar qualquer coisa útil.)
git log --author="that user"
No github, há também uma maneira secreta ...
Você pode filtrar confirmações por autor na visualização de confirmação anexando param ?author=github_handle
. Por exemplo, o link https://github.com/dynjs/dynjs/commits/master?author=jingweno mostra uma lista de confirmações para o projeto Dynjs
git help log
fornece a página de manual do git log. Procure por "autor" pressionando / e, em seguida, digitando "autor", seguido de Enter. Digite "n" algumas vezes para chegar à seção relevante, que revela:
git log --author="username"
como já sugerido.
Observe que isso fornecerá o autor do commit, mas no Git, o autor pode ser alguém diferente do commit (por exemplo, no kernel do Linux, se você enviar um patch como um usuário comum, ele poderá ser confirmado por outro usuário administrativo .) Veja Diferença entre autor e committer no Git? para mais detalhes)
Na maioria das vezes, o que se refere como o usuário é tanto o autor quanto o autor.
Para obter mais detalhes - (Aqui %an
se refere ao autor)
Usa isto :-
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
%ae
em vez de %an
(que deu nome.)
--author
na verdade, procura pelo nome do autor e não pelo nome do autor. Eu mudaria "username"
para autor #
cat | git log --author="authorName" > author_commits_details.txt
Isso fornece seus commits em formato de texto.
cat |
?
Se você deseja filtrar seus próprios commits:
git log --author="<$(git config user.email)>"
tente esta ferramenta https://github.com/kamranahmedse/git-standup
```bash
$ git standup [-a <author name>]
[-w <weekstart-weekend>]
[-m <max-dir-depth>]
[-f]
[-L]
[-d <days-ago>]
[-D <date-format>]
[-g]
[-h]
```
Abaixo está a descrição para cada uma das bandeiras
- `-a` - Specify author to restrict search to (name or email)
- `-w` - Specify weekday range to limit search to (e.g. `git standup -w SUN-THU`)
- `-m` - Specify the depth of recursive directory search
- `-L` - Toggle inclusion of symbolic links in recursive directory search
- `-d` - Specify the number of days back to include
- `-D` - Specify the date format for "git log" (default: relative)
- `-h` - Display the help screen
- `-g` - Show if commit is GPG signed or not
- `-f` - Fetch the latest commits beforehand
Como a outra pergunta foi (possivelmente por engano?) Bloqueada, vou colocar isso aqui:
mostre os autores com suas contagens de confirmação:
git shortlog -nse
encontre todas as confirmações para USERNAME específico:
git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show
Mostre o número n de logs para x usuário em cores, adicionando este pequeno trecho ao seu arquivo .bashrc.
gitlog() {
if [ "$1" ] && [ "$2" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1" --author="$2"
elif [ "$1" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1"
else
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order
fi
}
alias l=gitlog
Para mostrar os últimos 10 confirmados por Frank:
l 10 frank
Para mostrar os últimos 20 commits por qualquer pessoa:
l 20
Se você estiver usando o GitHub:
mostrará a lista no formato abaixo
branch_x: < comment>
author_name committed 2 days ago
Você pode usar = ou "espaço". Por exemplo, após dois comandos retornam o mesmo
git log --author="Developer1"
git log --author "Developer1"
Meu caso: estou usando a árvore de origem, segui as seguintes etapas:
CRL+3
Embora existam muitas respostas úteis. Considerando que, apenas para adicionar outra maneira a ele. Você também pode usar
git shortlog --author="<author name>" --format="%h %s"
Ele mostrará a saída da maneira agrupada:
<Author Name> (5):
4da3975f dependencies upgraded
49172445 runtime dependencies resolved
bff3e127 user-service, kratos, and guava dependencies upgraded
414b6f1e dropwizard :- service, rmq and db-sharding depedencies upgraded
a96af8d3 older dependecies removed
Aqui, o total de 5 confirmações é feito <Author Name>
sob a ramificação atual. Visto que você também pode usar --all
para impor a pesquisa em todos os lugares (todos os ramos) no repositório git.
Um problema: o git tenta internamente combinar uma entrada <author name>
com o nome e o email do autor no banco de dados git. Faz distinção entre maiúsculas e minúsculas .
github
?