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

有了Subversion,我可以使用TortoiseSVN来查看文件的历史logging。

我怎样才能做到这一点与Git?

只需查找特定文件的历史logging,然后再比较不同版本的function即可。

使用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 

看起来你想要git diff和/或git log 。 也检查出gitk

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

我喜欢使用gitk name_of_file

这显示了每次提交时发生的文件更改的一个很好的列表,而不是显示所有文件的更改。 更容易追踪发生的事情。

你也可以使用tig创build一个漂亮的,基于ncurses的git仓库浏览器。 查看文件的历史logging:

 tig path/to/file 

我最喜欢的是git log -p <filename> ,它会给你一个给定文件所有提交的历史以及每个提交的差异。

许多Git历史浏览器,包括git log (和'git log –graph'),gitk(在Tcl / Tk中,是Git的一部分),QGit(在Qt中),tig(文本模式接口,git,使用ncurses) (在GTK +),TortoiseGit和git-cheetah支持path限制(例如gitk path/to/file )。

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

git-diff或git-log ?

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

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

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