如何在 Git 中查看文件历史记录?

问题描述 投票:0回答:11

使用 Subversion,我可以使用 TortoiseSVN 查看文件的历史记录/日志。

如何使用 Git 做到这一点?

我只是寻找特定文件的历史记录,然后比较不同版本的能力。

git timeline git-diff git-log revision-history
11个回答
186
投票

使用

git log
查看提交历史记录。每个提交都有一个关联的修订说明符,它是一个哈希键(例如
14b8d0982044b0c49f7a855e396206ee65c0e787
b410ad4619d296f9d37f0db3d0ff5b9066838b39
)。要查看两个不同提交之间的差异,请使用
git diff
与两个提交的修订说明符的前几个字符,如下所示:

# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b

如果您想概述从提交到提交之间发生的所有差异,请使用

git log
git whatchanged
以及补丁选项:

# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d

119
投票

看起来你想要 git diff 和/或 git log。另请查看gitk

gitk path/to/file
git diff path/to/file
git log path/to/file

54
投票

我最喜欢的是

git log -p <filename>
,它将为您提供给定文件的所有提交的历史记录以及每个提交的差异。


39
投票

我喜欢使用 gitk name_of_file

这显示了每次提交时文件发生的更改的良好列表,而不是显示对所有文件的更改。可以更轻松地追踪发生的事情。


37
投票

您还可以使用 tig 来创建一个基于 ncurses 的漂亮 Git 存储库浏览器。要查看文件的历史记录:

tig path/to/file

11
投票

许多 Git 历史浏览器,包括

git log
(和“git log --graph”)、gitk(在 Tcl/Tk 中,Git 的一部分)、QGit(在 Qt 中)、tig(Git 的文本模式界面) ,使用 ncurses)、Giggle(在 GTK+ 中)、TortoiseGit 和git-cheetah 支持路径限制(例如,
gitk path/to/file
)。


8
投票

git log --all -- path/to/file
应该可以工作


4
投票

当然,如果你想要尽可能接近 TortoiseSVN 的东西,你可以使用 TortoiseGit


3
投票

TortoiseGit还提供了一个命令行工具来查看文件的历史记录。使用 PowerShell:

C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"

2
投票

您可以使用 git-diffgit-log


0
投票
git show --all -- path/to/file
© www.soinside.com 2019 - 2024. All rights reserved.