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

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

我怎么才能用 Git 做到这一点?

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

203547 次浏览

看起来你想要 蠢货和/或 Git Log。也可以看看 Gitk:

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

您可以使用 Git-diff笨蛋

使用 git log查看提交历史记录。每个提交都有一个相关的修订说明符,它是一个散列键(例如 14b8d0982044b0c49f7a855e396206ee65c0e787b410ad4619d296f9d37f0db3d0ff5b9066838b39)。要查看两次不同提交之间的区别,请使用 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

你也可以使用 Tig作为一个漂亮的、基于 诅咒的 Git 存储库浏览器:

tig path/to/file

许多 Git 历史浏览器,包括 git log(和‘ Git log —— graph’)、 Gitk(在 Tcl/Tk中,Git 的一部分)、 QGit (在 Qt 中)、 tig (使用 诅咒的 Git 文本模式界面)、 Giggle (在 GTK + 中)、 TortoiseGit 和 蠢猎豹支持路径限制(例如,gitk path/to/file)。

当然,如果您想要尽可能接近 TortoiseSVN 的内容,可以使用 TortoiseGit

我喜欢用 Gitk name _ of _ file

这将显示每次提交时对文件所做的更改的清单,而不是显示对所有文件的更改。这样更容易追查到发生了什么。

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

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

我最喜欢的是 git log -p <filename>,它将提供给定文件的所有提交的历史记录以及每次提交的差异。

git log --all -- path/to/file应该能用