协慌网

登录 贡献 社区

如何让 git log 显示文件名,如 svn log -v

SVN 的日志有一个 “-v” 模式,输出每次提交中更改的文件的文件名,如下所示:

jes5199$ svn log -v
------------------------------------------------------------------------
r1 |   jes5199 | 2007-01-03 14:39:41 -0800 (Wed, 03 Jan 2007) | 1 line
Changed paths:
   A /AUTHORS
   A /COPYING
   A /ChangeLog
   A /EVOLUTION
   A /INSTALL
   A /MacOSX

有没有一种快速的方法来获取 git 中每个提交中的已更改文件列表?

答案

对于已更改文件的完整路径名:

git log --name-only

对于完整路径名和已更改文件的状态:

git log --name-status

对于缩写的路径名和已更改文件的 diffstat:

git log --stat

还有更多选项, 请查看文档

注意: 不推荐使用git log git whatchanged ,请改用git log

鼓励新用户改用git-log [1]whatchanged命令与git-log [1]基本相同,但默认显示原始格式 diff 输出并跳过合并。

该命令主要是出于历史原因; 在阅读 Linux 内核邮件列表发明git log之前很久就学会了 Git 的人的手指都经过训练才能打字。


您可以使用命令git whatchanged --stat来获取每次提交中更改的文件列表(以及提交消息)。

参考

git show也是一个很好的命令。

它有点像svn diff ,但你可以传递一个提交 guid 并看到 diff。