如何在日志中查看每次提交的更改文件?

WD4*_*D40 1 git git-log

我想查看在每次提交中更改的文件列表git log另一个问题询问如何查看单个提交的更改文件,并得到以下响应

$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js
Run Code Online (Sandbox Code Playgroud)

我想知道的是如何将其应用到git log. 也就是说,我应该运行什么命令才能获得类似以下输出的内容?

commit 78b3ba12002f9cab5cbb57fac87d8c703702a196
Author: WD40 <example@example.com>
Date:   Fri Apr 14 09:59:57 2017 -0500

    Change more things

    about.html
    javascript/application.js
    javascript/ie6.js

commit 0f98b1f7eda33a4e9cfaab09506aa8094044085f
Author: WD40 <example@example.com>
Date:   Fri Apr 14 09:49:03 2017 -0500

    Change some things

    index.html
    javascript/application.js
    javascript/ie6.js
Run Code Online (Sandbox Code Playgroud)

此外,如果可能的话,我想知道如何做同样的事情,而且还显示添加和删除的文件。

我查看了这些git log --format选项,但找不到任何类似于我想要的东西。我有一种感觉,用 git log 是不可能的,并且可能需要将多个 s 的输出串在一起git diff-tree,但我不确定如何在没有脚本的情况下实现这一点(这可能是完成我想要的事情的唯一方法,但是我想我应该继续询问,因为那将是我最后的手段)。

Sch*_*ern 5

git-log有很多很多显示更改的选项。它们在文档中作为 Common Diff Options 找到,很常见,因为它们被许多可以显示提交的命令共享,例如git-diff-tree.

--name-only就是你想要的。还有...

  • -p显示完整的补丁
  • --stat显示文件更改以及更改数量
  • --name-status显示名称及其更改方式(修改、删除……)

还有很多很多!

例如,git log --name-status可能会显示如下内容:

commit 78b3ba12002f9cab5cbb57fac87d8c703702a196
Author: WD40 <example@example.com>
Date:   Fri Apr 14 09:59:57 2017 -0500

    Change more things

A      about.html
M      javascript/application.js
D      javascript/ie6.js

commit 0f98b1f7eda33a4e9cfaab09506aa8094044085f
Author: WD40 <example@example.com>
Date:   Fri Apr 14 09:49:03 2017 -0500

    Change some things

A      index.html
A      javascript/application.js
A      javascript/ie6.js
Run Code Online (Sandbox Code Playgroud)

哪里A添加、M哪里修改、D哪里删除。