在Windows上使用Git,如何创建显示已修改文件,提交消息,作者和日期的报告

时间:2016-10-12 06:27:00

标签: windows git

我理想情况下,是一个解决方案,可以让我建立一个报告,了解谁曾经触及过哪些文件,以及随着时间的推移发生了什么变化。因此,除其他外,它可以作为报告工作的基础。

我看过很多解决方案,包括 How can I list all modified files by an author between a commit range but only with the last thing that happened to the file in Git?

但解决方案都需要* nix环境,我们在Windows上运行我们的。

我尝试了以下部分,在导出的文件中部分提供了我要查找的内容。

理想情况下,我希望以下,不一定按顺序,在一行或多行,只要我可以在导出的文件中,我可以将每个输出放在1行,而不是跨越。

File, author, commit, commit message, date.
report.rdl, user, hash, added this file, 2016-10-08

我可以使用它获得部分内容。

git log --date=short --pretty=format:\"%h\";\"%cd\";\"%an\";\"%s\" --no-merges --since=1.weeks

它给出了哈希,日期,用户和提交消息,但我无法看到哪些文件受到影响。

这可以通过使用更详细的提交消息来解决,当然,但是id不必依赖它。

或者,可以做一些不同的事情。

使用LeGEC提供的代码

git log --date=short --name-only --pretty=format:\"%h\";\"%cd\";\"%an\";\"%s\" --since=1.weeks --author=username --no-merges > output.txt

我得到以下格式:

"b60f1f6";"2016-10-12";"username";"Changed package PackageName.dtsx to also handle staging data via merge."
Packages/PackageName.dtsx
"2b1ddde";"2016-10-11";"username";"Hiding the A1 category, adding category A2 and A3."
Reports/CatReport.rdl

如果提交中有多个文件,则会出现此问题。

"b60f1f6";"2016-10-12";"username";"Changed package PackageName.dtsx to also handle staging data via merge."
Packages/PackageName.dtsx
"2b1ddde";"2016-10-11";"username";"Hiding the A1 category, adding category A2 and A3."
Reports/CatReport.rdl
Reports/CatReport1.rdl

所以我意识到,我可能无法做我想做的事情,必须想出一个不同的解决方案来创建工作报告。

理想情况下,它将是以下输出:

"b60f1f6";"2016-10-12";"username";"Changed package PackageName.dtsx to also handle staging data via merge."
Packages/PackageName.dtsx
"2b1ddde";"2016-10-11";"username";"Hiding the A1 category, adding category A2 and A3."
Reports/CatReport.rdl
"2b1ddde";"2016-10-11";"username";"Hiding the A1 category, adding category A2 and A3."    
Reports/CatReport1.rdl

即提交中每个文件的一行。

1 个答案:

答案 0 :(得分:0)

添加--name-only选项(同时尝试--name-status选项):

git log --date=short --name-only --pretty=format:\"%h\";\"%...

git log(git help log)的手册页说:

  

说明

     

显示提交日志。

     

该命令采用适用于git rev-list命令的选项来控制显示的内容以及如何,和适用于的选项   该   git diff- * commands 控制每个提交引入的更改的显示方式。

如果滚动选项的(多个)页面,可以找到以下部分:

  

常见的DIFF选项

     

-p,-u, - 补丁
  生成补丁(请参阅生成补丁的部分)。

     

[等等...]

使用(很多)选项可以用来显示每次提交引入的差异信息。