对于一个受控项目来说,不管是个人还是团队,在一段时间内都会提交很多次不同版本的代码,针对不同的版本代码都会在提交的时候备注好提示信息,比如:谁谁谁在什么时间内开发了某某功能、修改了什么bug之类的话。
零. 大白话
如果哪一天,组长心血来潮,想看看提交的历史记录,这个时候,我们可以时候 git log 命令来查看每次提交的信息,比如:版本号、提交人、日期、提交备注信息等。如下图:
默认情况下,使用 git log 命令显示信息:
- SHA-1 Hash值(HEAD -> master)
- 作者信息
- 日期以及时间信息
- 提交备注信息
一. 多问
这里,细心的胖友可以看到,在哈希值后面 HEAD -> master ,这是什么意思呢?
在版本控制系统中,都有一个分支的概念。在开发初期,一般组长会安排人去默认创建一个骨架分支,叫做master分支,在 master分支基础上拉取多个分支,每个分支的代码在初期阶段都是一样的,不同的人获取分支后,可以基于分支并行开发,开发完成测试无误后再将不同的分支合并到master分支上。
HEAD 又名指针,指向了我们当前所处的分支,因为当前我们默认就处于 master分支上,所以,HEAD指针就是指向master
二. 命令介绍
--stat
使用 git log --stat ,可以显示每次 commit 的统一信息,包括修改了几个文件,有多少行插入,多少行删除。
--oneline
使用 git log --oneline ,把每一个提交信息压缩显示一行,默认情况下显示 commit 的标识符 SHA-1 Hash值、提交备注信息、显示分支和HEAD指向哪个 commit
--graph
使用 git log --graph,显示图形化的 commit 历史,如果有分支的话,commit 历史会形成一颗树的形状,这个时候用 --graph 可以看清楚 commit 树长成什么样。
--patch 、--patch -n
使用 git log --patch -2,--patch 可以显示每次提交的内容差异,在代码review的时候非常有用。同时 -n 可以指定显示最近几个 commit。
--abbrev-commit
使用 git log --abbrev-commit,每一次 commit 都有一个唯一的标识符,显示SHA-1 Hash值的前7位。
--pretty
使用 git log --pretty=oneline,使用自定义格式显示历史提交信息,可用的选项包括 oneline、short、full、fuller 和 format。如,我们使用git log --pretty=format:"%h - %an, %ar : %s",可以显示SHA-1 Hash值、作者、多长时间以前、提交备注信息。
git log --oneline --abbrev-commit --graph
使用这个命令,可以看到整个commit树结构,合并指向、显示每个commit的 SHA-1 Hash值短时、提交备注说明。
好了,今天就到这里!如上,希望对你有价值,我们下期见!认真学,认真做,万事皆有可能,祝你学习进步!