Git log:获取用户自给定日期以来更改的文件列表,包含行数和提交消息

时间:2015-11-08 21:59:33

标签: windows git logging

我很想知道自特定日期以来特定作者在分支机构中所做的工作。我想知道修改了哪些文件,添加/删除了行数以及提交消息。以下命令接近我想要的但仍需要提交消息和日期:

git log --author"someone" --no-merges --since'2015/11/01' --pretty:tformat: --numstat

输出如下:

0       16      Project/main.cpp
16      0       Project/bar.json
1       1       Project/foo.cpp

1       1      Project/main.cpp

我想要这样的事情:

0       16      Project/main.cpp       Changed main            2015/11/02
16      0       Project/bar.json       Changed bar             2015/11/02
1       1       Project/foo.cpp        Changed bar             2015/11/02

1       1       Project/main.cpp       Done something to main  2015/11/01

因为我的最终目标是按日期分组并按日期排序更改,包括提交消息,例如:

2015/11/01   Project/main.cpp    Dome something to main.   1   1 
2015/11/02   Project/main.cpp    Changed main.             0   16 
2015/11/02   Project/bar.json    Changed bar.              16  0 
2015/11/01   Project/foo.cpp     Changed bar.              1   1 

请注意对main.cpp的更改是如何一起显示的,并按日期排序。

如何使用git实现这一目标?我在Windows下运行,我没有像gawk这样的工具,但是如果有帮助我可以使用PowerShell。

1 个答案:

答案 0 :(得分:0)

  

我没有像gawk这样的工具

这是弄巧成拙的。 Get the real git distribution。 git是一个工具包的工具,一个主要部分,但仍然是一部分。没有人会理所当然地复制,然后必须维持非平凡基础的单独实现。

然后就是

git log --pretty=%ci%x09%s --numstat $your $parms $here | awk -F $'\t' '
     NF == 2   { date=$1; subject=$2; next }
     NF == 3   { print date,$0,subject }
' | sort -k6,6 -Vk1,2

使用PowerShell,你会不断遇到这样的限制。也许这只是我的无知,我之前用google搜索了不错的工具而没有发现,这是我的限制。