从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
是否包含它?