使用Subversion,我可以使用TortoiseSVN查看文件的历史记录/日志。
我怎么能用Git做到这一点?
只查找特定文件的历史记录,然后查找不同版本的能力。
答案 0 :(得分:144)
使用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
答案 1 :(得分:92)
答案 2 :(得分:33)
我喜欢使用 gitk name_of_file
这显示了每次提交时文件发生的更改的清单,而不是显示所有文件的更改。可以更轻松地追踪发生的事情。
答案 3 :(得分:30)
您还可以使用tig作为基于ncurses的优秀git存储库浏览器。要查看文件的历史记录:
tig path/to/file
答案 4 :(得分:22)
我最喜欢的是git log -p <filename>
,它会为您提供给定文件的所有提交的历史记录以及每次提交的差异。
答案 5 :(得分:10)
许多Git历史浏览器,包括git log
(和'git log --graph'),gitk(在Tcl / Tk中,Git的一部分),QGit(在Qt中),tig(到git的文本模式接口) ,使用ncurses),Giggle(在GTK +中),TortoiseGit和git-cheetah支持路径限制(例如gitk path/to/file
)。
答案 6 :(得分:5)
当然,如果你想要尽可能接近TortoiseSVN,你可以使用TortoiseGit。
答案 7 :(得分:2)
答案 8 :(得分:2)
TortoiseGit还提供command line tool来查看文件的历史记录。使用PowerShell:
C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"
答案 9 :(得分:1)
git log --all -- path/to/file
应该有效