2013-03-20 10 views
5

コミットのすべてのファイルについては、ステータス修飾子--name-statusと、追加された行と削除された行の量(--numstat)の両方を提供したいと思います。git logを使うと、あるコマンドで--name-statusと--numstatを得る方法はありますか?

> git log --pretty=format:"%aN %ct" --reverse --name-status --encoding=UTF-8 --no-renames 
John Doe 1234567489 
M  foo/bar/foo.bar 
A  bar/hello.txt 

と::

> git log --pretty=format: --reverse --numstat --encoding=UTF-8 --no-renames 
9  5  foo/bar/foo.bar 
21  0  bar/hello.txt 

私にそれらの出力を与えるフラグの単一のコマンド/組み合わせ組み合わせがあり、私は以下の持っていると言いますか?この線に沿って何か:

John Doe 1234567489 
M 9 5  foo/bar/foo.bar 
A 21 0  bar/hello.txt 

私はいくつかのawk魔法でそれらを組み合わせることが可能である知っているが、私は、複数の大規模なリポジトリやパフォーマンスの問題でこれを行うだろうと見て、単一のgit logコマンドが好ましいだろう。

答えて

1

--name-statusは他のフラグよりも優先されるようです(これは--name-onlyと似ています)。 - summaryと--numstatsの組み合わせを使用できます。しかし、あなたが説明したのと同じ行にはなりません。これが唯一のモード変更の要約をリストしていることを

Christopher Corley 1363309327 
4929 0  IEEEtran.cls 
22  46  paper.tex 
create mode 100644 IEEEtran.cls 

注:

git log --pretty=format:"%aN %ct" --reverse --summary --numstat --encoding=UTF-8 --no-renames 

のようなものを生成します。モードが変更されていない修正ファイル( 'M')の場合、それらは要約リストに表示されません。

同様に、あなたが変更されたファイルがリストされ、代わりに--summaryの--raw使用することが有益かもしれません:

Christopher Corley 1363309327 
:000000 100644 0000000... 5e2d183... A IEEEtran.cls 
:100644 100644 2abed5a... 91f133d... M paper.tex 
4929 0  IEEEtran.cls 
22  46  paper.tex 
+0

これは、残念ながらまだ解析中にいくつかの余分な労力を必要とするファイルごとに2本のラインを、葉私は、1行で情報を入手することで回避することを望んでいました。私はあなたが '--name-status'を他のフラグよりも優先させて、それが事実上不可能になっていると思います。 –

関連する問題