Git 教程之查看提交历史详解
Git查看提交历史
在使用Git提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用gitlog命令查看。
针对我们前一章节的操作,使用gitlog命令列出历史提交记录如下:
$gitlog commit88afe0e02adcdfea6844bb627de97da21eb10af1 Merge:14b4dcad7e7346 Author:w3cschool<w3c@w3cschool.cc> Date:SunMar115:03:422015+0800 Mergebranch'change_site' Conflicts: test.txt commit14b4dcadbdc847207651d5a9fae0d315057f346e Author:w3cschool<w3c@w3cschool.cc> Date:SunMar114:53:152015+0800 新增加一行 commitd7e734640da06055e107eaf29cf350b3f1de1c2c Author:w3cschool<w3c@w3cschool.cc> Date:SunMar114:48:572015+0800 changedthesite commit556f0a0637978097b82287ac665a717623b21f3f Author:w3cschool<w3c@w3cschool.cc> Date:SunMar114:40:342015+0800 removedtest2.txt
我们可以用--oneline选项来查看历史记录的简洁的版本。
$gitlog--oneline 88afe0eMergebranch'change_site' 14b4dca新增加一行 d7e7346changedthesite 556f0a0removedtest2.txt 2e082b7addtest2.txt 048598faddtest.txt 85fc7e7testcommentfromw3cschool.cc
这告诉我们的是,此项目的开发历史。
我们还可以用--graph选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项:
$gitlog--oneline--graph *88afe0eMergebranch'change_site' |\ |*d7e7346changedthesite *|14b4dca新增加一行 |/ *556f0a0removedtest2.txt *2e082b7addtest2.txt *048598faddtest.txt *85fc7e7testcommentfromw3cschool.cc
现在我们可以更清楚明了地看到何时工作分叉、又何时归并。
你也可以用'--reverse'参数来逆向显示所有日志。
$gitlog--reverse--oneline 85fc7e7testcommentfromw3cschool.cc 048598faddtest.txt 2e082b7addtest2.txt 556f0a0removedtest2.txt d7e7346changedthesite 14b4dca新增加一行 88afe0eMergebranch'change_site'
如果只想查找指定用户的提交日志可以使用命令:gitlog--author,例如,比方说我们要找Git源码中Linus提交的部分:
$gitlog--author=Linus--oneline-5 81b50f3Move'builtin-*'intoa'builtin/'subdirectory 3bb7256make"index-pack"abuilt-in 377d027make"gitpack-redundant"abuilt-in b532581make"gitunpack-file"abuilt-in 112dd51make"mktag"abuilt-in
如果你要指定日期,可以执行几个选项:--since和--before,但是你也可以用--until和--after。
例如,如果我要看Git项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了--no-merges选项以隐藏合并提交):
$gitlog--oneline--before={3.weeks.ago}--after={2010-04-18}--no-merges 5469e2dGit1.7.1-rc2 d43427dDocumentation/remote-helpers:Fixtyposandimprovelanguage 272a36bFixup:Secondargumentmaybeanyarbitrarystring b6c8d2dDocumentation/remote-helpers:Addinvocationsection 5ce4f4eDocumentation/urls:Rewritetoaccomodatetransport::address 00b84e9Documentation/remote-helpers:Rewritedescription 03aa87eDocumentation:Describeothersituationswhere-zaffectsgitdiff 77bc694rebase-interactive:silencewarningwhennocommitsrewritten 636db2ct3301:addteststouse--format="%N"
更多gitlog命令可查看:http://git-scm.com/docs/git-log