对于提交的所有文件,我希望状态修饰符--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命令。
答案 0 :(得分: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”),它们不会出现在摘要列表中。
同样,你可能会发现使用--raw而不是--summary列出修改后的文件是有益的:
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