Question Comment puis-je voir un journal git des commits d'un seul utilisateur?


En utilisant git log, comment puis-je filtrer par utilisateur afin que je vois uniquement les validations de cet utilisateur?


957
2017-11-23 19:31


origine


Réponses:


Cela fonctionne pour les deux git log et gitk - Les 2 façons les plus courantes de visionner l'histoire. Vous n'avez pas besoin d'utiliser le nom entier.

git log --author="Jon"

va correspondre à un commit fait par "Jonathan Smith"

git log --author=Jon

et

git log --author=Smith

travaillerait aussi. Les guillemets sont facultatifs si vous n'avez pas besoin d'espaces.

Ajouter --all si vous avez l'intention de rechercher toutes les branches et pas seulement les ancêtres du commit actuel dans votre repo.

Vous pouvez aussi facilement faire correspondre plusieurs auteurs car regex est le mécanisme sous-jacent de ce filtre. Donc pour lister les commits par Jonathan ou Adam, vous pouvez faire ceci:

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

Afin d'exclure les validations d'un auteur particulier ou d'un ensemble d'auteurs en utilisant des expressions régulières telles que notées dans cette question, vous pouvez utiliser un lookahead négatif en combinaison avec le --perl-regexp commutateur:

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

Vous pouvez également exclure les validations créées par Adam en utilisant bash et la tuyauterie:

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

Si vous souhaitez exclure les validations validées (mais pas nécessairement créées) par Adam, remplacez %an avec %cn. Plus de détails à ce sujet sont dans mon blog ici: 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



Sur github il y a aussi un secret façon...

Vous pouvez filtrer les validations par auteur dans la vue de validation en ajoutant un paramètre ?author=github_handle. Par exemple, le lien https://github.com/dynjs/dynjs/commits/master?author=jingweno montre une liste de commits au projet Dynjs


37
2017-11-23 19:37



git help log

vous donne la page de manuel de git log. Recherche de "auteur" là en appuyant sur / et en tapant "auteur", suivi par Enter. Tapez "n" quelques fois pour accéder à la section pertinente, qui révèle:

git log --author="username"

comme déjà suggéré.

Notez que cela vous donnera l'auteur des validations, mais dans Git, l'auteur peut être différent de l'auteur (par exemple dans le noyau Linux, si vous soumettez un correctif en tant qu'utilisateur ordinaire, il peut être validé par un autre utilisateur administratif .) Voir) Différence entre auteur et committer dans Git? pour plus de détails)

La plupart du temps, ce que l'on appelle l'utilisateur est à la fois le committer et l'auteur.


27
2017-08-11 19:09



Pour tirer plus de détails - (Ici %an se réfère à l'auteur)

Utilisez ceci :-

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

Cela donne vos commits en format texte.


13
2018-03-24 18:54



Vous pouvez même l'abréger un peu en utilisant simplement une partie du nom d'utilisateur:

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

11
2017-11-22 13:57



Si vous voulez filtrer vos propres validations:

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

9
2018-06-19 12:19



essayez cet outil https://github.com/kamranahmedse/git-standup

Usage

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

Voici la description de chacun des drapeaux

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