如何限制git log(或svn log)仅显示与特定文件相关的修订记录?

11
我希望看到一个文件的一系列差异。如果只提供修改了该文件的条目的日志列表,我也可以接受。
5个回答

18

svn log filename

或者

svn log URL

我也建议添加 --limit N 来仅显示最近的条目:

svn log main.cpp --limit 4

顺便提一下,这些可以应用于文件或项目。


天啊,它就在帮助文件中。我两个地方都错过了。 - James A. Rosen
通过 less 进行管道传输具有与 --limit N 相似的效果:"svn log main.cpp | less" - James A. Rosen

12

git log [文件名]。如果你想查看变更内容,使用git log -p [文件名]


3

查询单个文件的SVN日志

svn log filename.php

查看文件在1033到1191版本间的更改差异

svn -r 1033:1191 diff filename.php


2
就SVN而言,如果当前版本中不存在所讨论的文件,则还需要指定一个peg版本:svn log path@some_revision_where_the_path_existed。如果省略了peg版本,则默认为HEAD(对于url)或BASE(对于工作副本路径)。此外,请注意,如果文件已被删除并随后重新恢复,但没有历史记录将其连接到旧文件(信不信由你,当进行深度重构或技术转变时,我曾见过使用这种技术的好处),则svn log仅显示与该特定peg版本相关联的更改。如果要查看与特定路径曾经关联的所有更改,则必须对存储库根进行 svn log -v,然后按更改路径过滤结果。

2

Git:如果文件从当前分支中删除(或以其他方式被 Git 视为模棱两可的参数):

git log -- [filename]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接