
使用 Git 进行版本控制时,要习惯他的工作流程,Git 的工作流程是,先在工作区创建项目并编写代码,然后将写好的文件添加到暂存区,最后将暂存区里的文件提交到历史版本库。如下图所示:

每向版本历史库做一次提交, Git 就会生成一个新的项目版本,这样的话,你就能很容易地找到之前的版本,在之前的版本上继续开发。使用git log
命令就可以很方便地查看项目的版本演变历史。
单个分支
git log
最简单的使用方式就是在当前分支下直接输入git log
命令,该命令的作用是查看当前分支点所有提交记录(或者说是版本历史)。
git log #显示全部的版本历史

如果想让它简洁地显示,可以在后面加一个--oneline
的选项,意思是每条版本历史只显示一行。
git log --oneline #简洁地显示版本演变历史

还可以指定显示最新的几条记录,在git log
的后面加上-nx
选项就好了,实际使用的时候,-nx
中的x
要换成具体的数字,比如:
git log -n2 #查看最近的两条记录

当然-nx
与--oneline
这两个选项也可以结合起来使用:
git log -n2 --oneline #简洁地显示最近两条记录

多个分支
前面我们只演示了如何在单个分支上使用git log
命令,但是在实际的开发中,往往不止一个分支,当有多个分支时,git log
命令该如何使用呢?
为了演示方便,我们先创建一个分支,用如下命令:
git checkout -b temp 9b56fe338ae3a33a4bc373c75597aec91dc5a2eb
其中,temp
是用户自定义的分支名,9b56fe338ae3a33a4bc373c75597aec91dc5a2eb
是版本标识,代表着你要以哪个版本为基础创建分支,如下图所示:

分支创建好之后,使用下面这个命令查看本地有多少分支:
git branch -v

上图中的master
是主分支,而temp
就是我们刚才创建的分支。
创建完分支后,Git 默认会留在你创建的这个分支中,这个时候如果输入git log
命令,显示的就是当前temp
分支的版本演变历史。

对 temp 分支下的readme.txt
文件做一下修改,然后将其提交到版本历史库里面。
输入以下命令,可以查看所有分支的版本演变历史:
git log --all

但是这样看起来难免有些眼花缭乱,分不清分支之间的父子关系。那么你可以在后面加一个选项--graph
,使之用图形化的方式显示。
git log --all --graph #以图形化的方式显示版本演变历史

这样就可以很明显地看出各分支的关系以及版本演变历史。
如果你想在当前分支下查看其他分支的版本演变历史,可以在git log
命令后面加上分支名来查看指定分支的版本演变历史:
git log master # 查看master分支的版本演变历史
以上就是git log
命令的几个常用选项,各个选项可以根据你的需求相互组合,比如,我想查看所有分支的最近的两条版本演变历史,并且让他以图形化的方式显示,而且还要简洁的地显示。那么可以这样输入命令:

当然,git log
的用法远不止这些,如果你想了解他的其他用法,可以在命令行中输入:
git help --web log #在浏览器中查看log的帮助文档

欢迎大家关注我的微信公众号:AProgrammer,与我交流!
