5

--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 コマンドが望ましいでしょう。

4

1 に答える 1

1

--name-statusは他のフラグをオーバーライドするように見えるため(--name-onlyに似ています)、-summaryと--numstatsを組み合わせて使用​​できます。ただし、説明したのと同じ行にはなりません。

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

次のようなものを生成します:

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

これはモード変更の要約のみをリストしていることに注意してください。モードが変更されていない(つまり、「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
于 2013-03-20T11:28:19.487 に答える