を使用git log
している場合、ユーザーからのコミットのみが表示されるようにユーザーでフィルタリングするにはどうすればよいですか?
を使用git log
している場合、ユーザーからのコミットのみが表示されるようにユーザーでフィルタリングするにはどうすればよいですか?
回答:
これは、履歴を表示する最も一般的な2つの方法git log
とgitk
-の両方で機能します。
名前全体を使用する必要はありません。
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
または、Adamが作成したコミットを使用bash
してパイプすることで、コミットを除外できます。
git log --format='%H %an' |
grep -v Adam |
cut -d ' ' -f1 |
xargs -n1 git log -1
あなたはアダムによってコミットコミット(必ずしも執筆していない)を除外したい場合は、交換してください%an
と%cn
。これに関する詳細は、こちらのブログ投稿にあります。http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/
gitk
他の著者から親のコミットを除外?(それらは白い円で表示されます。)対照的にgit log --graph
、親のコミットは表示されません。与えられた作者のコミットのみを表示します。で同じ出力を表示したいと思いgitk
ます。([設定]と[編集ビュー]は既に
git log --author="that user"
githubには秘密の方法もあります...
paramを追加することで、コミットビューで作成者ごとにコミットをフィルタリングできます?author=github_handle
。たとえば、リンクhttps://github.com/dynjs/dynjs/commits/master?author=jingwenoは、Dynjsプロジェクトへのコミットのリストを示します
git help log
git logのマンページを提供します。/を押して「author」を検索し、「author」と入力してEnterキーを押します。「n」を数回入力して、関連するセクションに移動します。
git log --author="username"
すでに示唆したように。
これにより、コミットの作成者が得られますが、Gitでは、作成者はコミッターとは異なる人物である可能性があります(たとえば、Linuxカーネルでは、通常のユーザーとしてパッチを送信した場合、別の管理ユーザーによってコミットされる可能性があります) 。)Gitの作者とコミッターの違いを参照してください。詳細については)
ほとんどの場合、ユーザーとして言及するのは、コミッターでも作者でもあります。
詳細を取得するには-(ここで%an
は著者を参照)
これを使って :-
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
%ae
が%an
(名前を与えた)の代わりに彼らの電子メールアドレス使用フォーマットが欲しいなら
--author
実際には、コミッター名ではなく、著者名で検索します。私は"username"
著者に変更します
自分のコミットをフィルタリングしたい場合:
git log --author="<$(git config user.email)>"
このツールを試して ください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
この小さなスニペットを.bashrcファイルに追加して、xユーザーのn個のログをカラーで表示します。
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
フランクによる最近の10件のコミットを表示するには:
l 10 frank
過去20回のコミットを誰でも表示するには:
l 20
GitHubを使用している場合:
以下のフォーマットでリストを表示します
branch_x: < comment>
author_name committed 2 days ago
=または "スペース"を使用できます。たとえば、次の2つのコマンドは同じ結果を返します
git log --author="Developer1"
git log --author "Developer1"
しかし、多くの有用な答えがあります。一方、それに別の方法を追加するだけです。あなたも使うことができます
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
ここでは、合計5つのコミットが<Author Name>
現在のブランチの下で行われます。一方、gitリポジトリ内のすべての--all
場所(すべてのブランチ)で検索を強制することもできます。
1つのキャッチ: gitは内部で入力<author name>
をgitデータベース内の作者の名前と電子メールと照合しようとします。それは、大文字と小文字を区別。
github
ますか?