誰がブランチを作成したのか知りたいです。
私は次のようにしてそうすることができます:
git branch -a | xargs -L 1 bash -c 'echo "$1 `git log --pretty=format:"%H %an" $1^..$1`"' _
ただし、これはブランチごとの最後のコミッターを返します。必ずしもブランチを作成した人ではありません。
誰がブランチを作成したのか知りたいです。
私は次のようにしてそうすることができます:
git branch -a | xargs -L 1 bash -c 'echo "$1 `git log --pretty=format:"%H %an" $1^..$1`"' _
ただし、これはブランチごとの最後のコミッターを返します。必ずしもブランチを作成した人ではありません。
コミッターの日付でソートされた作成者別にリモートGitブランチを一覧表示します。
git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' --sort=committerdate
ブランチはコミットポインタに他なりません。そのため、「誰が私を作成したか」などのメタデータは追跡されません。自分で見て。cat .git/refs/heads/<branch>
リポジトリで試してください。
リポジトリでこの情報を追跡することに本当に興味がある場合は、ブランチの説明を確認してください。少なくともローカルでは、ブランチに任意のメタデータを添付できます。
また、以下のDarVarの回答は、この情報を入手するための非常に賢い方法です。
フラグを使用して以前の回答を微調整し、--sort
色/フォーマットを追加しました。
git for-each-ref --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p) %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes
DarVarの答えに追加する:
git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' | sort -k5n -k2M -k3n -k4n | awk '{print $7 $8}'
PS:AWKを使用して、作成者とリモートブランチをきれいに印刷しました。
git for-each-ref --format='%(authorname) %09 -%(refname)' | sort
ローカルリポジトリにブランチを作成したのは誰であるかを確認するには、
git reflog --format=full
出力例:
commit e1dd940
Reflog: HEAD@{0} (a <a@none>)
Reflog message: checkout: moving from master to b2
Author: b <b.none>
Commit: b <b.none>
(...)
しかし、これはおそらく、ブランチを作成するだけのローカルリポジトリでは役に立たないでしょう。
情報は./.git/logs/refs/heads/branchに保存されます。内容の例:
0000000000000000000000000000000000000000 e1dd9409c4ba60c28ad9e7e8a4b4c5ed783ba69b a <a@none> 1438788420 +0200 branch: Created from HEAD
この例の最後のコミットはユーザー「b」からのもので、ブランチ「b2」はユーザー「a」によって作成されました。ユーザー名を変更すると、git reflogがログから情報を取得し、ローカルユーザーを使用しないことを確認できます。
そのローカルログ情報を中央リポジトリに送信する可能性についてはわかりません。
著者名に基づいて調べることができます
git for-each-ref --format='%(authorname) %09 %(if)%(HEAD)%(then)*%(else)%(refname:short)%(end) %09 %(creatordate)' refs/remotes/ --sort=authorname DESC
仮定:
master
master
まだマージされていません git log --format="%ae %an" master..<HERE_COMES_THE_BRANCH_NAME> | tail -1
私の知る限り、あなたはあなたがブランチの作成者だけであるかどうかを見るかもしれません。これは、.git / ref / heads/<branch>の最初の行で示されます。「CreatedfromHEAD」で終わる場合は、あなたが作成者です。
これが完全に質問の範囲ではないことは知っていますが、特定の作成者によるコミットのみをフィルタリングする必要がある場合は、いつでもgrepにパイプできます:)
# lists all commits in chronological order that
# belong to the github account with
# username `MY_GITHUB_USERNAME` (obviously you
# would want to replace that with your github username,
# or the username you are trying to filter by)
git for-each-ref --format='%(committerdate) %09 %(authorname) %09 %(refname)' | sort -committerdate | grep 'MY_GITHUB_USERNAME'
ハッピーコーディング!:)
DESCをお探しの方へ...これはうまくいくようです--sort=-
フォーマットのためのty、これに新しい...私の目はそれの血走りの一部を失っています
git for-each-ref --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p) %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=-authordate refs/remotes
警告!
これらのコマンドは、ブランチが指しているコミットデータを表示するため、コミット作成者はブランチ作成者とは異なる可能性があることに注意してください。Gitはブランチ作成者を保存せず、コミットの作成者のみを保存します。