如何查看日志中每个提交的更改文件? [复制]

Posted

技术标签:

【中文标题】如何查看日志中每个提交的更改文件? [复制]【英文标题】:How can I view changed files for each commit in the log? [duplicate] 【发布时间】:2017-09-10 21:49:13 【问题描述】:

我想查看git log 中每次提交中更改的文件列表。 Another question 询问如何查看单个提交的更改文件,并得到了following response:

$ git diff-tree --no-commit-id --name-only -r bd61ad98
index.html
javascript/application.js
javascript/ie6.js

我想知道如何将其应用于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

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

我查看了git log --format 选项,但找不到任何与我想要的相似的东西。我觉得 git log 不可能,并且可能需要将多个 git diff-trees 的输出串在一起,但我不确定如何在没有脚本的情况下执行此操作(这可能是完成我的任务的唯一方法想要,但我想我会继续问,因为那将是我最后的手段)。

【问题讨论】:

【参考方案1】:

git-log 有很多用于显示更改的选项。 They're found in the docs as 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

其中添加A,修改M,删除D

【讨论】:

以上是关于如何查看日志中每个提交的更改文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

linux中如何查看指定时间内的日志?如今天6月5日,我要查看6月1日的日志?

教你如何查看 Git 提交中发生了什么变化

如何查看上次提交中更改了哪些文件

使用 Git 版本控制查看文件的更改历史记录

如何运行 git log 以仅查看特定分支的更改?

如何查看linux服务器的日志文件