从 git log --stat 的输出中缩写路径名前缀
Abbreviating pathname prefixes from the output of git log --stat
当我 运行 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 +++.......
所有东西都共享公共前缀 xxx/toplevel/networking/services/cool_analysis
(subdirectory
是 运行 的下一个)但是 git log --stat
的输出让人很难认清这个事实,因为缩写了不同数量的路径名前缀。相反,我想要这样的东西:
$ 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 +++.......
有办法得到这个吗?手册似乎没有任何关于它的内容,并且 post-用 sed
或其他东西处理输出很难,因为路径名已经缩写了。 (git log --name-only
提供未缩写的完整路径名,但不提供统计信息。)
你可以试试这个:
git log --stat --oneline --relative=[path]
--relative[=<path>]
When run from a subdirectory
of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option. When you are not in a subdirectory (e.g. in a bare repository), you can name which subdirectory to make the output relative to by giving a as an argument.
这里有 2 个不同的截图。
您可以为此使用 --relative
参数。
git log --stat --relative=xxx/toplevel/networking/services/cool_analysis
如果您已经在正确的目录中,则无需提供 --relative
的路径。
当我 运行 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 +++.......
所有东西都共享公共前缀 xxx/toplevel/networking/services/cool_analysis
(subdirectory
是 运行 的下一个)但是 git log --stat
的输出让人很难认清这个事实,因为缩写了不同数量的路径名前缀。相反,我想要这样的东西:
$ 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 +++.......
有办法得到这个吗?手册似乎没有任何关于它的内容,并且 post-用 sed
或其他东西处理输出很难,因为路径名已经缩写了。 (git log --name-only
提供未缩写的完整路径名,但不提供统计信息。)
你可以试试这个:
git log --stat --oneline --relative=[path]
--relative[=<path>]
When run from a
subdirectory
of the project, it can be told to exclude changes outside the directory and show pathnames relative to it with this option. When you are not in a subdirectory (e.g. in a bare repository), you can name which subdirectory to make the output relative to by giving a as an argument.
这里有 2 个不同的截图。
您可以为此使用 --relative
参数。
git log --stat --relative=xxx/toplevel/networking/services/cool_analysis
如果您已经在正确的目录中,则无需提供 --relative
的路径。