En utilisant git log
, comment puis-je filtrer par utilisateur afin que je vois uniquement les validations de cet utilisateur?
En utilisant git log
, comment puis-je filtrer par utilisateur afin que je vois uniquement les validations de cet utilisateur?
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/
git log --author="that user"
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
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.
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"
cat | git log --author="authorName" > author_commits_details.txt
Cela donne vos commits en format texte.
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
Si vous voulez filtrer vos propres validations:
git log --author="<$(git config user.email)>"
essayez cet outil 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]
```
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