git->显示特定目录中最近提交中更改的文件的列表


Answers:


164

此命令与svn命令更相似,因为它显示了文件状态:已添加(A),已复制(C),已删除(D),已修改(M),重命名(R)等。

git log --name-status -10 path/to/dir

值得阅读有关的完整文档页面git log。在那里,您将学习-10到有关过去10次提交的内容,-p并将为您提供完整的补丁程序以及其他各种好处。


12
为了完整起见:常用的一组相似选项是-p(完整补丁),--stat(更改的行数),--numstat(类似于--stat但机器可读的)--name-status,和--name-only(仅文件名)。
卡斯卡贝尔

3
对于任何不知道此问题的人,-10表示要显示的提交数。如果需要全面的提交列表,请尝试使提交数量异常大,根据需要将其设置为-1000或更大。
朱利安·索罗

从特定的提交或标签开始,是否还可以查看历史记录?这是几百次提交,所以要算一下……
MrFox

2
@MrFox git log <from revision>..,例如git log abc123..。在此处阅读有关范围格式的更多信息:kernel.org/pub/software/scm/git/docs/…–
htanata

36

要显示最近10次提交中所有更改的文件,而没有任何提交信息,请执行以下操作:

git diff --name-only HEAD~10..HEAD yourdir

3
在编辑器中重新打开文件的完美解决方案。
cdosborn

1
该解决方案仅列出文件路径,列出注释,这比公认的答案更值得赞赏。如果您只需要列出在指定提交中已更改的文件,那么此解决方案就可以做到这一点
大富翁

6

试着做

git log -p -10 yourdir/

它应该工作。


1
OP要求提供已更改文件的列表,而不是完整的补丁程序。
卡斯卡贝尔

1
如果要更改文件列表,则可以使用--stat代替-p
blue112

1

要显示commit分支的所有(最近的和旧的),您需要计算分支中的提交次数

git rev-list --count branch_name

一旦获得所有提交计数,就可以运行

git log --name-status -countNumber /path

并且可以简化视图,将--pretty=oneline选项添加到git log上面的命令中。追加| sort | uniq命令将帮助人们根据htanata的答案
XavierStuvw
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.