从git log--stat的输出中缩写路径名前缀

从git log--stat的输出中缩写路径名前缀,git,git-log,Git,Git Log,当我在一个存储库上运行git log--stat时,其中大多数更改都发生在层次结构的同一子树中,我可能会得到如下结果: $ git log --stat commit xxxxxxx Author: xxx Date: xxx commit message .../toplevel/networking/services/cool_analysis/Makefile | 10 ++ .../networking/services/cool_analysis/cool_an

当我在一个存储库上运行
git log--stat
时,其中大多数更改都发生在层次结构的同一子树中,我可能会得到如下结果:

$ git log --stat
commit xxxxxxx
Author: xxx
Date:   xxx

    commit message

.../toplevel/networking/services/cool_analysis/Makefile    |  10 ++
.../networking/services/cool_analysis/cool_analysis_main.c | 209 +++............
.../subdirectory/util/cool_analysis_helper.c               | 112 +++.......
$ git log --stat --strip=xxx/toplevel/networking/services/cool_analysis
commit xxxxxxx
Author: xxx
Date:   xxx

    commit message

.../Makefile                                 |  10 ++
.../cool_analysis_main.c                     | 209 +++............
.../subdirectory/util/cool_analysis_helper.c | 112 +++.......
所有东西都共享公共前缀
xxx/toplevel/networking/services/cool\u analysis
(并且
子目录
)但是
git log--stat
的输出使得很难识别这一事实,因为不同数量的路径名前缀被缩写。相反,我想要这样的东西:

$ git log --stat
commit xxxxxxx
Author: xxx
Date:   xxx

    commit message

.../toplevel/networking/services/cool_analysis/Makefile    |  10 ++
.../networking/services/cool_analysis/cool_analysis_main.c | 209 +++............
.../subdirectory/util/cool_analysis_helper.c               | 112 +++.......
$ git log --stat --strip=xxx/toplevel/networking/services/cool_analysis
commit xxxxxxx
Author: xxx
Date:   xxx

    commit message

.../Makefile                                 |  10 ++
.../cool_analysis_main.c                     | 209 +++............
.../subdirectory/util/cool_analysis_helper.c | 112 +++.......
有办法得到这个吗?手册中似乎没有任何内容,使用
sed
或其他工具对输出进行后处理很困难,因为路径名已经缩写。(
git log--name only
提供未经修改的完整路径名,但不提供统计信息。)

您可以尝试以下方法:

git log --stat --oneline --relative=[path]
--相对[=]

从项目的
子目录运行时,可以告诉它排除目录外的更改,并使用此选项显示与其相关的路径名。当您不在子目录中(例如,在一个裸存储库中)时,您可以通过提供一个作为参数来命名与哪个子目录相关的输出


这里有两个截图,它们有所不同

您可以为此使用
--relative
参数

git log --stat --relative=xxx/toplevel/networking/services/cool_analysis
如果您已经在正确的目录中,则不需要提供
--relative

的路径
--relative
是否包含它?