如何让Git显示文件的版本历史记录

问题描述 投票:2回答:4

过去我曾经是CVS用户,尽管我认为Git是一个很好的版本控制系统,但是我却缺少CVS中的功能。具体来说,我想查看文件的版本历史,例如文件上的标签。如何在Git中做到这一点?

git file tags version history
4个回答
5
投票

在git文件中没有自己的历史记录。整个项目都有历史。因此,您唯一需要询问的是与文件相关的历史部分,或者(由于没有文件标识的特殊概念)与路径有关。所有显示命令的历史记录都接受路径限制器。喜欢:

$ git log -- file
$ gitk HEAD -- file

--将修订版本与路径分开。您可以在大多数情况下忽略它,但是如果该名称也是有效的修订名称,或者该文件在当前版本中不存在,则可能需要省略它。

您也可以指定目录名称,在这种情况下,将列出该子树中所有文件的历史记录。

由于这受path的限制,如果文件被重命名,它将不会跟随。毕竟,git不存储有关重命名的任何显式信息。但是,它可以猜测重命名,您可以要求log尝试使用--follow跟随重命名,例如:

$ git log --follow -- file

这仅适用于单个文件,不适用于目录。

另一个选项正在寻找包含特定文本的更改,如果您要查找某些代码的来源,这通常会更容易。使用-S选项进行日志记录:

$ git log -Stext

3
投票

Rafe Kettler's answer为您提供了所需的基础知识,但值得扩展。首先,如果您的文件与分支名称相同,则应在文件名前添加--

git log -p -- filename

-p参数表示还显示该提交所引起的对该文件的更改。您提到要查看适用于该版本的所有标签-为此,您应该添加--decorate选项。

最后,如果该文件可能已在其历史记录中的某个位置重命名,或者已从存储库中的另一个位置复制到该位置,则应考虑添加--follow选项。

您可以在git log中找到有关documentation的更多信息,或在此另一个Stack Overflow问题中找到检查特定文件历史的其他方法:

...还建议可以提供特定路径的图形历史记录浏览器(例如gitk)。


2
投票

尝试使用此尺寸:

git log -p filename

在终端上阅读有点困难,因此您可能需要将其重定向到文件并在其中查看。


0
投票

我使用的是git版本2.23.0,如果您未使用其他选项或修订范围,则无需使用'-'在文件上显示历史记录。只需使用:

git log filename
© www.soinside.com 2019 - 2024. All rights reserved.