gpt4 book ai didi

git - 使用 git log,有没有办法在一个命令中获取 '--name-status' 和 '--numstat'?

转载 作者:太空狗 更新时间:2023-10-29 13:26:42 24 4
gpt4 key购买 nike

对于提交的所有文件,我想要状态修饰符 --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 命令会更可取。

最佳答案

由于 --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

关于git - 使用 git log,有没有办法在一个命令中获取 '--name-status' 和 '--numstat'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15521255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com