如何在Git中查看文件历史logging?
有了Subversion,我可以使用TortoiseSVN来查看文件的历史logging。
我怎样才能做到这一点与Git?
只需查找特定文件的历史logging,然后再比较不同版本的function即可。
使用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
看起来你想要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
应该工作