购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.4 查看记录

5.4.1 查看记录的方法

接下来介绍如何查看之前Commit的记录。

因为当前只Commit了一次,不好比较,所以这里再次Commit,顺便也复习一下前文介绍的内容:

$ touch index.html                      # 创建文件index.html
$ git add index.html                    # 把index.html加至暂存区
$ git commit -m "create index page"     # 进行Commit

1. 使用Git命令

查看Git记录使用的是git log命令,其执行后的结果如下:

$ git log
commit cef6e4017eb1a16a7bb3434f12d9008ff83a821a (HEAD -> master)
Author: Eddie Kao <eddie@5xruby.tw>
Date:  Wed Aug 2 03:02:37 2017 +0800

    create index page

commit cc797cdb7c7a337824a25075e0dbe0bc7c703a1e
Author: Eddie Kao <eddie@5xruby.tw>
Date:  Sun Jul 30 05:04:05 2017 +0800

    init commit

越新的信息会显示在越上面。从上面这段信息中大致可以看出以下内容。

(1)Commit的作者是谁。

(2)什么时候Commit的。

(3)每次的Commit大概做了些什么事。

至于那个看起来像乱码的cef6e4017eb1a16a7bb3434f12d9008ff83a821a,其实是有特殊用意的。在Git中,这种看起来像乱码的文本,都是使用SHA-1(Secure Hash Algorithm 1)算法计算的结果。计算的方式会在5.17节进行详细的介绍,现在可以先把它当作一种重复概率非常低的文本。Git使用这样的字符串作为识别码。每个Commit都有一个这样的值,可以把它想象成每个Commit的身份证号。

在使用git log命令时,如果加上额外参数,可以看到不一样的输出格式。例如,加上-- oneline和–graph参数:

$ git log --oneline --graph
* cef6e40 create index page
* cc797cd init commit

输出的结果就会更为精简,可以一次性看到更多的Commit。

2. 使用图形界面工具(推荐!)

如果使用SourceTree,在左侧菜单栏中选择WORKSPACE→History选项,就可以看到所有的历史记录,如图5-11所示。

图5-11

两相比较,使用图形界面工具比在终端机窗口使用Git命令清楚多了。因此,在查看记录时,建议初学者使用图形界面工具,不仅可以少输入一些字,而且可以显示更完整的信息。

更仔细地研究一下界面上的信息,如图5-12所示。

图5-12

可以得出以下结论。

(1)越新的Commit越在上面。

(2)Description栏中除了Commit信息之外,还有一个“master”字样,这是Git中默认的分支名称。关于分支,会在第6章介绍。

(3)在这个区域,两次的Commit分别在画面上以蓝色的实心小圆圈呈现,而空心的小圆圈则是表示HEAD的位置。HEAD通常指向现在这个分支最前端的位置。更多关于HEAD的说明,可参阅5.15节。

(4)在Commit栏中,可以看到cef6e40和cc797cd,它们其实就是cef6e4017eb1a16a7b b3434 f12d9008ff83a821a和cc797cdb7c7a337824a25075e0dbe0bc7c703a1e这两串文本的缩写。其实对Git来说,只要有这6~8码的Commit信息就足以识别了。那如果前6~8码的缩写重复了怎么办?这时,Git会很贴心地提示:“该信息无法识别,请再提供更多位数的信息以供识别”。

5.4.2 使用Git查询历史记录时的常见问题

以下是一些在使用Git查询历史记录时可能会遇到的问题(当前的历史记录如图5-13所示)。

图5-13

1. 想要找某个人或某些人的Commit

例如,想找一位名叫Sherly的作者的Commit,可以使用如下命令:

$ git log --oneline --author="Sherly"
930feb3 add pig
51d54ff add lion and tiger

此外,使用“\|”(“|”是“或者”的意思,前面需要加上“\”,否则会被判定为一般的文字而不是功能符号)可以查询Sherly以及Eddie这两个人的Commit记录:

$ git log --oneline --author="Sherly\|Eddie"

2. 想要找Commit信息中是否含有某些关键字

使用--grep参数,可以从Commit信息中搜索符合关键字的内容,如搜索“LOL”:

$ git log --oneline --grep="LOL"

3. 怎样在Commit文件中找到Ruby

使用-S参数,可以在所有的Commit文件中进行搜索,找到那些符合特定条件的内容:

$ git log -S "Ruby"

4. 怎样查找某一时间段内的Commit

在查看历史记录时,可以搭配--since和--until参数查询:

$ git log --oneline --since="9am" --until="12am"

这样就可以找出“今天早上9点到12点之间所有的Commit”。还可以再加一个after:

$ git log --oneline --since="9am" --until="12am" --after="2017-01"

这样可以找到“从2017年1月之后,每天早上9点到12点之间的Commit”。

以上这些命令做到的事,在SourceTree中都可以很方便地完成。在左侧菜单栏中选择WORKSPACE→Search选项,即可进入搜索界面,如图5-14所示。

图5-14

然后输入关键词或条件。例如,想要查找名叫Sherly的作者,就在搜索框中输入“Sherly”,如图5-15所示。

图5-15

单击Search按钮,即可查到所需资料,相当方便。 5yny/cBOiHwuMMzijvONf4hn/s2AMIL0eJ6bDq4zzgAqnMQxYwGYjbUzUpQMXPgS

点击中间区域
呼出菜单
上一章
目录
下一章
×