Lors de l'utilisation d' git log
comment puis-je filtrer par utilisateur, de sorte que je vois s'engage uniquement à partir de cet utilisateur?
Réponses
Trop de publicités?Cela fonctionne pour les deux git log
et gitk
- les 2 façons les plus courantes de visualisation de l'historique. Vous n'avez pas besoin d'utiliser le nom complet.
git log --author="Jon"
va correspondre à une livraison effectuée par un "Jonathan Smith"
git log --author=Jon
et
git log --author=Smith
serait aussi travailler. Les citations sont en option si vous n'avez pas besoin d'espaces.
Ajouter --all
si vous avez l'intention de rechercher toutes les directions et pas seulement le commit courant ancêtres dans votre pension.
Vous pouvez également facilement correspondre à plusieurs auteurs comme regex est le mécanisme sous-jacent de ce filtre. Si la liste s'engage par Jonathan ou Adam, vous pouvez faire ceci:
git log --author="\(Adam\)\|\(Jon\)"
Afin d'exclure s'engage par un auteur particulier ou un ensemble d'auteurs à l'aide des expressions régulières comme indiqué dans cette question, vous pouvez utiliser une anticipation négatif, en combinaison avec l' --perl-regexp
switch:
git log --author='^(?!Adam|Jon).*$' --perl-regexp
Alternativement, vous pouvez exclure s'engage rédigé par Adam à l'aide d' bash
et de la tuyauterie:
git log --format='%H %an' |
grep -v Adam |
cut -d ' ' -f1 |
xargs -n1 git log -1
Si vous souhaitez exclure s'engage engage (mais pas nécessairement l'auteur) par Adam, remplacez - %an
avec %cn
. Plus de détails à ce sujet dans mon blog ici: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/
Sur github, il est aussi un secret de la sorte...
Vous pouvez filtrer s'engage par l'auteur dans le commit vue par l'ajout de param ?auteur=github_handle. Pour exemple, le lien https://github.com/dynjs/dynjs/commits/master?author=jingweno affiche une liste des commits du Dynjs projet