2

您可以自定义git logusing的输出,--pretty并且可以使用 显示添加和删除的行数--numstat。它看起来像这样:

$ git log --pretty=format:"%h - %ar : %s" --numstat config*.ini

f665c63 - 6 months ago : fixes session end post
1       1       config.ini

4541de2 - 7 months ago : fixes missing strings
6       1       config.ini
3       1       config_office.ini

但我想要的是提交信息和文件更改的输出,分别显示在一行中。像这样的东西:

1       1       config.ini            f665c63 - 6 months ago : fixes session end post
6       1       config.ini            4541de2 - 7 months ago : fixes missing strings
3       1       config_office.ini     4541de2 - 7 months ago : fixes missing strings

grep这样,使用,等解析这个输出就很简单了。gitsort是否已经提供了这个功能?

4

1 回答 1

1

据我所知,git log不能在本地做到这一点。但是,此 sed 命令会执行此操作:

sed '/^[0-9]\+\t[0-9]\+\t[^\t]\+$/ b file; h; d; : file; G; s/\n/\t/'

它寻找--numstat线条。任何非 numstat 行都被复制到保持缓冲区中并且不打印。带有 numstat 输出的行获取附加的保持缓冲区的当前内容,在中间留下一个换行符,然后用一个制表符替换。

于 2012-11-04T21:25:38.830 回答