Frage Wie kann ich ein Gitprotokoll von nur einem Benutzer anzeigen?


Beim Benutzen git log, wie kann ich nach Benutzer filtern, sodass nur Commits von diesem Benutzer angezeigt werden?


957
2017-11-23 19:31


Ursprung


Antworten:


Dies funktioniert für beide git log und gitk - Die 2 häufigsten Arten, Geschichte zu sehen. Sie müssen nicht den ganzen Namen verwenden.

git log --author="Jon"

wird einem Commit von "Jonathan Smith" entsprechen

git log --author=Jon

und

git log --author=Smith

würde auch funktionieren. Die Anführungszeichen sind optional, wenn Sie keine Leerzeichen benötigen.

Hinzufügen --all wenn Sie in Ihrem Repository nach allen Zweigen und nicht nur nach den Vorfahren des aktuellen Commits suchen möchten.

Sie können auch einfach mehrere Autoren zuordnen, da Regex der zugrunde liegende Mechanismus für diesen Filter ist. Um Commits von Jonathan oder Adam aufzulisten, können Sie Folgendes tun:

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

Um Commits durch einen bestimmten Autor oder eine Gruppe von Autoren auszuschließen, die reguläre Ausdrücke wie angegeben verwenden in dieser FrageSie können ein negative Vorausschau in Kombination mit der --perl-regexp Schalter:

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

Alternativ können Sie von Adam erstellte Commits ausschließen, indem Sie verwenden bash und Rohrleitungen:

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

Wenn Sie Commits ausschließen möchten (die nicht unbedingt von Adam erstellt wurden), ersetzen Sie sie %an mit %cn. Weitere Details dazu finden Sie in meinem Blogpost hier: 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



Auf Github gibt es auch eine Geheimnis Weg...

Sie können Commits nach Autor in der Commit-Ansicht filtern, indem Sie param anhängen ?author=github_handle. Zum Beispiel die Verbindung https://github.com/dynjs/dynjs/commits/master?author=jingweno Zeigt eine Liste der Commits für das Dynjs-Projekt an


37
2017-11-23 19:37



git help log

gibt Ihnen die Manpage von git log. Suchen Sie dort nach "author", indem Sie / drücken und dann "author" eingeben, gefolgt von Enter. Geben Sie einige Male "n" ein, um zum entsprechenden Abschnitt zu gelangen.

git log --author="username"

wie bereits vorgeschlagen.

Beachten Sie, dass Sie damit den Autor der Commits erhalten, aber in Git kann der Autor eine andere Person sein als der Committer (zum Beispiel im Linux-Kernel, wenn Sie einen Patch als normalen Benutzer senden, könnte dieser von einem anderen administrativen Benutzer ausgeführt werden) .) Sehen Unterschied zwischen Autor und Committer in Git? für mehr Details)

Die meiste Zeit, was man als Benutzer bezeichnet, ist sowohl der Committer als auch der Autor.


27
2017-08-11 19:09



Um mehr Details zu ziehen - (Hier %an bezieht sich auf den Autor)

Benutze das :-

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

Dies gibt Ihre Commits im Textformat.


13
2018-03-24 18:54



Sie können dies sogar etwas abkürzen, indem Sie einfach einen Teil des Benutzernamens verwenden:

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

11
2017-11-22 13:57



Wenn Sie Ihre eigenen Commits filtern möchten:

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

9
2018-06-19 12:19



Probieren Sie dieses Tool aus https://github.com/kamranahmedse/git-standup

Verwendung

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

Unten ist die Beschreibung für jedes der Flags

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



Wenn Sie GitHub verwenden:

  • Gehe zum Zweig
  • Klicken Sie auf Commits

Es wird eine Liste im unteren Format angezeigt

branch_x: < comment> 
author_name committed 2 days ago
  • das Engagement des einzelnen Autors sehen; klicke auf Autorenname  und dort können Sie alle Commits dieses Autors in diesem Zweig sehen

2
2017-09-17 15:11