Pregunta ¿Cómo puedo ver un registro de git de las confirmaciones de solo un usuario?


Cuando usas git log¿Cómo puedo filtrar por usuario para que solo vea confirmaciones de ese usuario?


957
2017-11-23 19:31


origen


Respuestas:


Esto funciona para ambos git log y gitk - Las 2 formas más comunes de ver la historia. No necesita usar el nombre completo.

git log --author="Jon"

coincidirá con un compromiso hecho por "Jonathan Smith"

git log --author=Jon

y

git log --author=Smith

también funcionaría Las citas son opcionales si no necesita espacios.

Añadir --all si tiene la intención de buscar todas las ramas y no solo los antepasados ​​del compromiso actual en su repositorio.

También puede hacer coincidir fácilmente en varios autores ya que la expresión regular es el mecanismo subyacente para este filtro. Entonces, para hacer una lista de commits por Jonathan o Adam, puedes hacer esto:

git log --author="\(Adam\)\|\(Jon\)"

Para excluir confirmaciones de un autor en particular o un conjunto de autores que utilizan expresiones regulares como se indica en esta pregunta, puedes usar un lookahead negativo en combinación con el --perl-regexp cambiar:

git log --author='^(?!Adam|Jon).*$' --perl-regexp

Alternativamente, puede excluir confirmaciones creadas por Adam mediante el uso de bash y tubería

git log --format='%H %an' | 
  grep -v Adam | 
  cut -d ' ' -f1 | 
  xargs -n1 git log -1

Si desea excluir commits cometidos (pero no necesariamente creados) por Adam, reemplace %an con %cn. Más detalles sobre esto están en mi blog aquí: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/


1286
2017-11-23 19:35



git log --author="that user"

38
2018-05-07 10:23



En github también hay un secreto camino...

Puede filtrar confirmaciones por autor en la vista de confirmación añadiendo param ?author=github_handle. Por ejemplo, el enlace https://github.com/dynjs/dynjs/commits/master?author=jingweno muestra una lista de compromisos para el proyecto Dynjs


37
2017-11-23 19:37



git help log

te da la página de manual de git log. Busque "autor" allí presionando / y luego escriba "autor", seguido de Intro. Escriba "n" varias veces para ir a la sección correspondiente, que revela:

git log --author="username"

como ya se sugirió.

Tenga en cuenta que esto le dará el autor de los commits, pero en Git, el autor puede ser alguien diferente del committer (por ejemplo, en el kernel de Linux, si envía un parche como un usuario ordinario, podría ser cometido por otro usuario administrativo .) Ver Diferencia entre autor y committer en Git? para más detalles)

La mayoría de las veces, a lo que uno se refiere como el usuario es a la vez el autor y el autor.


27
2017-08-11 19:09



Para obtener más detalles - (Aquí %an se refiere al autor)

Utilizar esta :-

git log --author="username" --pretty=format:"%h - %an, %ar : %s"

14
2017-09-23 06:32



cat | git log --author="authorName" > author_commits_details.txt

Esto le da sus compromisos en formato de texto.


13
2018-03-24 18:54



Incluso puede abreviar esto un poco simplemente usando parte del nombre de usuario:

git log --author=mr  #if you're looking for mrfoobar's commits

11
2017-11-22 13:57



Si quieres filtrar tus propios commits:

git log --author="<$(git config user.email)>"

9
2018-06-19 12:19



prueba esta herramienta https://github.com/kamranahmedse/git-standup

Uso

```bash
$ git standup [-a <author name>] 
              [-w <weekstart-weekend>] 
              [-m <max-dir-depth>]
              [-f]
              [-L]
              [-d <days-ago>]
              [-D <date-format>] 
              [-g] 
              [-h]
```

A continuación se encuentra la descripción de cada una de las banderas

- `-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

6
2017-08-24 12:43



Si usa GitHub:

  • ir a la sucursal
  • haga clic en commits

mostrará la lista en el siguiente formato

branch_x: < comment> 
author_name committed 2 days ago
  • para ver el compromiso del autor individual; haga clic en nombre del autor  y allí puedes ver todos los commits de ese autor en esa rama

2
2017-09-17 15:11



Dado que la otra pregunta era (¿posiblemente erróneamente?) Bloqueada, simplemente pondré esto aquí:

mostrar autores con sus recuentos de compromiso: 

git shortlog -nse

encontrar todas las confirmaciones para el NOMBRE DE USUARIO específico: 

git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show

2
2018-06-09 20:54