课程表

Git课程

工具箱
速查手册

Git 查看提交历史

当前位置:免费教程 » 软件/图像 » Git

在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。

针对我们前一章节的操作,使用 git log 命令列出历史提交记录如下:

  1. $ git log
  2. commit 88afe0e02adcdfea6844bb627de97da21eb10af1
  3. Merge: 14b4dca d7e7346
  4. Author: w3xue <w3c@w3xue.com>
  5. Date: Sun Mar 1 15:03:42 2015 +0800
  6.  
  7. Merge branch 'change_site'
  8. Conflicts:
  9. test.txt
  10.  
  11. commit 14b4dcadbdc847207651d5a9fae0d315057f346e
  12. Author: w3xue <w3c@w3xue.com>
  13. Date: Sun Mar 1 14:53:15 2015 +0800
  14.  
  15. 新增加一行
  16.  
  17. commit d7e734640da06055e107eaf29cf350b3f1de1c2c
  18. Author: w3xue <w3c@w3xue.com>
  19. Date: Sun Mar 1 14:48:57 2015 +0800
  20.  
  21. changed the site
  22.  
  23. commit 556f0a0637978097b82287ac665a717623b21f3f
  24. Author: w3xue <w3c@w3xue.com>
  25. Date: Sun Mar 1 14:40:34 2015 +0800
  26.  
  27. removed test2.txt

我们可以用 --oneline 选项来查看历史记录的简洁的版本。

  1. $ git log --oneline
  2. 88afe0e Merge branch 'change_site'
  3. 14b4dca 新增加一行
  4. d7e7346 changed the site
  5. 556f0a0 removed test2.txt
  6. 2e082b7 add test2.txt
  7. 048598f add test.txt
  8. 85fc7e7 test comment from w3xue.com

这告诉我们的是,此项目的开发历史。

我们还可以用 --graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项:

  1. $ git log --oneline --graph
  2. * 88afe0e Merge branch 'change_site'
  3. |\
  4. | * d7e7346 changed the site
  5. * | 14b4dca 新增加一行
  6. |/
  7. * 556f0a0 removed test2.txt
  8. * 2e082b7 add test2.txt
  9. * 048598f add test.txt
  10. * 85fc7e7 test comment from w3xue.com

现在我们可以更清楚明了地看到何时工作分叉、又何时归并。

你也可以用 '--reverse'参数来逆向显示所有日志。

  1. $ git log --reverse --oneline
  2. 85fc7e7 test comment from w3xue.com
  3. 048598f add test.txt
  4. 2e082b7 add test2.txt
  5. 556f0a0 removed test2.txt
  6. d7e7346 changed the site
  7. 14b4dca 新增加一行
  8. 88afe0e Merge branch 'change_site'

如果只想查找指定用户的提交日志可以使用命令:git log --author , 例如,比方说我们要找 Git 源码中 Linus 提交的部分:

  1. $ git log --author=Linus --oneline -5
  2. 81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory
  3. 3bb7256 make "index-pack" a built-in
  4. 377d027 make "git pack-redundant" a built-in
  5. b532581 make "git unpack-file" a built-in
  6. 112dd51 make "mktag" a built-in

如果你要指定日期,可以执行几个选项:--since 和 --before,但是你也可以用 --until 和 --after。

例如,如果我要看 Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 --no-merges 选项以隐藏合并提交):

  1. $ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
  2. 5469e2d Git 1.7.1-rc2
  3. d43427d Documentation/remote-helpers: Fix typos and improve language
  4. 272a36b Fixup: Second argument may be any arbitrary string
  5. b6c8d2d Documentation/remote-helpers: Add invocation section
  6. 5ce4f4e Documentation/urls: Rewrite to accomodate transport::address
  7. 00b84e9 Documentation/remote-helpers: Rewrite description
  8. 03aa87e Documentation: Describe other situations where -z affects git diff
  9. 77bc694 rebase-interactive: silence warning when no commits rewritten
  10. 636db2c t3301: add tests to use --format="%N"

更多 git log 命令可查看:http://git-scm.com/docs/git-log

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号