web-dev-qa-db-ja.com

1人のユーザーのコミットのgitログを表示するにはどうすればいいですか?

git logを使うとき、どのように私はそのユーザーからのコミットだけを見るようにユーザーによってフィルターをかけることができますか?

1084
markdorison

これはgit loggitk - 歴史を見るための2つの最も一般的な方法の両方のために働きます。あなたは名前全体を使う必要はありません。

git log --author="Jon"

"Jonathan Smith"によるコミットと一致します

git log --author=Jon

そして

git log --author=Smith

またうまくいくでしょう。スペースが不要な場合、引用符はオプションです。

リポジトリ内の現在のコミットの先祖だけではなく、すべてのブランチを検索する場合は--allを追加してください。

正規表現はこのフィルタの基本的なメカニズムであるため、複数の作者を簡単に一致させることもできます。そのため、JonathanまたはAdamによるコミットを一覧表示するには、次のようにします。

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

この質問では のように正規表現を使って特定の作者や一組の作者によるコミットを排除するために 否定的な先読み--Perl-regexpスイッチと組み合わせて使うことができます。

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

あるいは、bashとpipingを使用して、Adamによって作成されたコミットを除外することができます。

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

Adamによってコミットされた(必ずしも作成されたわけではない)コミットを除外したい場合は、%an%cnに置き換えます。これについての詳細はこちらの私のブログ投稿にあります: http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/

1473
Adam Dymitruk
git log --author="that user"
44
wilhelmtell

Githubでは secret wayもあります。

パラメータ?author=github_handleを追加することで、コミットビューで作者によるコミットをフィルタすることができます。たとえば、リンク https://github.com/dynjs/dynjs/commits/master?author=jingweno には、Dynjsプロジェクトへのコミットのリストが表示されます。

40
slott
git help log

git logのマンページを提供します。 /キーを押して「author」と入力し、Enterキーを押して、「author」を検索します。該当するセクションに移動するには、「n」と数回入力します。

git log --author="username"

すでに示唆したように。

これはコミットの作者になりますが、Gitでは作者はコミッタとは別の人になることができます(例えば、Linuxカーネルで、一般ユーザとしてパッチを提出する場合、他の管理ユーザによってコミットされるかもしれません) Gitでの作者とコミッタの違いは?を参照してください。 詳細については)

ほとんどの場合、ユーザーとは、コミッターと作者の両方を指します。

28
ustun

詳細を引き出すには - (ここで%anは作者を表します)

これを使って :-

git log --author="username" --pretty=format:"%h - %an, %ar : %s"
18
cat | git log --author="authorName" > author_commits_details.txt

これはあなたのコミットをテキストフォーマットで与えます。

15
Johnsa Philip

自分のコミットをフィルタリングしたい場合は、

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

ユーザー名の一部を使用するだけで、これを少し短縮することもできます。

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

このツールをお試しください 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]
```

以下は各フラグの説明です。

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

.bashrcファイルにこの小さなスニペットを追加して、xユーザーのログの数をカラーで表示します。

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

alias l=gitlog

Frankによる直近の10個のコミットを表示するには

l 10 frank

誰かが最後の20のコミットを表示するには:

l 20

4
Frank Forte

もう一つの質問は(おそらく間違ってそうだろうか?)ロックされていたので、私はここにこれを置くつもりです:

作者にコミット数を表示する:

git shortlog -nse

特定のUSERNAMEに対するすべてのコミットを見つける:

git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show
4
sjas

GitHubを使用している場合:

  • 分岐する
  • コミットをクリック

以下の形式でリストが表示されます

branch_x: < comment> 
author_name committed 2 days ago
  • 個々の作者のコミットを見るため author_name をクリックすると、そのブランチ上のその作者のコミットがすべて表示されます。
2
diEcho

私の場合:ソースツリーを使用しています。次の手順に従いました。

  1. CRL+3を押しました
  2. 変更されたドロップダウン作成者
  3. 「Vinod Kumar」という名前を入力しました

enter image description here

0
Vinod Kumar

しかし、多くの有用な答えがあります。一方、別の方法を追加するだけです。使用することもできます

git shortlog --author="<author name>" --format="%h %s"

グループ化された方法で出力を表示します:

<Author Name> (5):
  4da3975f dependencies upgraded
  49172445 runtime dependencies resolved
  bff3e127 user-service, kratos, and guava dependencies upgraded
  414b6f1e dropwizard :- service, rmq and db-sharding depedencies upgraded
  a96af8d3 older dependecies removed

ここでは、現在のブランチの下で<Author Name>によって合計5つのコミットが行われます。一方、--allを使用して、gitリポジトリのすべての場所(すべてのブランチ)で検索を実施することもできます。

ワンキャッチ: gitは、入力<author name>をgitデータベース内の作成者の名前と電子メールと照合しようとします。 case-sensitiveです。

0
psyco

=または "space"のどちらでも使用できます。たとえば、次の2つのコマンドは同じを返します

git log --author="Developer1"

git log --author "Developer1"
0
harshainfo