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

en utilisant git log , Comment puis-je filtrer par utilisateur pour ne voir que les propagations de cet utilisateur?

981
demandé sur David Thibault 2010-11-23 22:31:42

13 réponses

cela fonctionne à la fois pour git log et gitk - les 2 façons les plus courantes de voir l'histoire. Vous n'avez pas besoin d'utiliser le nom complet.

git log --author="Jon"

correspond à une livraison effectuée par un "Jonathan Smith,"

git log --author=Jon

et

git log --author=Smith

marcherait aussi. Les guillemets sont optionnels si vous n'avez pas besoin d'espaces.

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

vous pouvez également facilement correspondre sur plusieurs auteurs que regex est le mécanisme sous-jacent pour ce filtre. Ainsi, pour lister les commits par Jonathan ou Adam, vous pouvez faire ceci:

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

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

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

alternativement, vous pouvez exclure commits authored by 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 voulez exclure s'engage engage (mais pas nécessairement l'auteur) par Adam, remplacer %an avec %cn . Plus de détails à ce sujet sont dans mon blog post ici: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name /

1318
répondu Adam Dymitruk 2017-05-23 11:55:03
git log --author="that user"
39
répondu wilhelmtell 2010-11-23 19:35:17

Sur github, il est aussi un secret ...

vous pouvez filtrer les propagations par l'auteur dans la vue commit en ajoutant le param ?author=github_handle . Par exemple, le lien https://github.com/dynjs/dynjs/commits/master?author=jingweno affiche une liste d'engagements au projet Dynjs

39
répondu slott 2016-11-11 11:34:49
git help log

vous donne la page de manuel de git log. Rechercher " auteur "en appuyant sur / puis en tapant" auteur", puis entrer. Tapez " n "plusieurs fois pour obtenir la section pertinente, qui révèle:

git log --author="username"

comme déjà suggéré.

notez que cela vous donnera l'auteur des propagations, mais en Git, l'auteur peut être quelqu'un de différent du propagateur (par exemple dans le noyau Linux, si vous soumettez un correctif comme un utilisateur, il peut être engagé par un autre utilisateur administratif.) Voir la Différence entre l'auteur et le commiter dans Git? pour plus de détails)

la Plupart du temps, ce que l'on désigne comme l'utilisateur est à la fois le livreur et l'auteur.

27
répondu ustun 2017-05-23 11:47:32

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
répondu Sireesh Yarlagadda 2016-11-11 11:33:48
cat | git log --author="authorName" > author_commits_details.txt

donne vos propagations en format texte.

13
répondu Johnsa Philip 2016-11-11 11:34:07

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
répondu three 2013-03-24 18:54:37

si vous voulez filtrer votre propre commits:

git log --author="<$(git config user.email)>"
11
répondu Luca Faggianelli 2016-11-22 13:57:54

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

Utilisation

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

ci-dessous est la description pour 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
7
répondu InsaneBot 2017-06-19 12:19:15

puisque l'autre question était (peut-être à tort? fermée à clef, je viens de mettre cela ici:

montrent les auteurs avec leurs engagements:

git shortlog -nse

trouver toutes les propagations pour un nom D'utilisateur spécifique:

git log --author=USERNAME --oneline | awk '{print }' | xargs git show
4
répondu sjas 2017-09-17 15:11:18

si vous utilisez GitHub:

  • passer à la succursale
  • "151940920 cliquez sur" s'engage

il va afficher la liste ci-dessous format

branch_x: < comment> 
author_name committed 2 days ago
  • pour voir le commit de chaque auteur; cliquez sur nom d'auteur et là vous pouvez voir tous les commits de cet auteur sur cette branche
2
répondu pro.mean 2016-12-02 11:48:53

afficher n nombre de logs pour l'utilisateur x en couleur en ajoutant ce petit extrait dans votre .dossier bashrc.

gitlog() {
    if [ "" ] && [ "" ]; then
       git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "" --author=""
    elif [ "" ]; then
       git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n ""
    else
        git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order
    fi
}

alias l=gitlog

Pour afficher les 10 derniers s'engage par Frank:

l 10 frank

pour montrer les 20 derniers commits par n'importe qui:

l 20

1
répondu Frank Forte 2018-03-09 03:53:19

Vous pouvez utiliser soit = ou "espace". Par exemple, si vous suivez deux commandes, retournez le même

git log --author="Developer1"

git log --author "Developer1"
0
répondu harshainfo 2018-07-11 18:51:17