Git 教程
1. Git 教程 2. Git 安装配置 3. Git 工作流程 4. Git 创建仓库 5. Git 基本操作 6. Git 分支管理 7. Git 查看提交历史 8. Git 标签 9. Git 远程仓库(Github) 10. Git 服务器搭建

Git 查看提交历史

Git 查看提交历史

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

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


$ git log

commit d5e9fc2c811e0ca2b2d28506ef7dc14171a207d9 (HEAD -> master)

Merge: c68142b 7774248

Author:  <test@.com>

Date:   Fri May 3 15:55:58 2019 +0800



    Merge branch 'change_site'



commit c68142b562c260c3071754623b08e2657b4c6d5b

Author:  <test@.com>

Date:   Fri May 3 15:52:12 2019 +0800



    修改代码



commit 777424832e714cf65d3be79b50a4717aea51ab69 (change_site)

Author:  <test@.com>

Date:   Fri May 3 15:49:26 2019 +0800



    changed the .php



commit c1501a244676ff55e7cccac1ecac0e18cbf6cb00

Author:  <test@.com>

Date:   Fri May 3 15:35:32 2019 +0800

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


$ git log --oneline

$ git log --oneline

d5e9fc2 (HEAD -> master) Merge branch 'change_site'

c68142b 修改代码

7774248 (change_site) changed the .php

c1501a2 removed test.txt、add .php

3e92c19 add test.txt

3b58100 第一次版本提交

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

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


*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'

|\  

| * 7774248 (change_site) changed the .php

* | c68142b 修改代码

|/  

* c1501a2 removed test.txt、add .php

* 3e92c19 add test.txt

* 3b58100 第一次版本提交

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

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


$ git log --reverse --oneline

3b58100 第一次版本提交

3e92c19 add test.txt

c1501a2 removed test.txt、add .php

7774248 (change_site) changed the .php

c68142b 修改代码

d5e9fc2 (HEAD -> master) Merge branch 'change_site'

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


$ git log --author=Linus --oneline -5

81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory

3bb7256 make "index-pack" a built-in

377d027 make "git pack-redundant" a built-in

b532581 make "git unpack-file" a built-in

112dd51 make "mktag" a built-in

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

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


$ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

5469e2d Git 1.7.1-rc2

d43427d Documentation/remote-helpers: Fix typos and improve language

272a36b Fixup: Second argument may be any arbitrary string

b6c8d2d Documentation/remote-helpers: Add invocation section

5ce4f4e Documentation/urls: Rewrite to accomodate transport::address

00b84e9 Documentation/remote-helpers: Rewrite description

03aa87e Documentation: Describe other situations where -z affects git diff

77bc694 rebase-interactive: silence warning when no commits rewritten

636db2c t3301: add tests to use --format="%N"

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