Git使用手册/Git教程:git log 查看git提交版本历史日志记录

相关文章:

关于验证是否存在ssh配置以及生成SSH Key的方法可以参照文章:Git使用手册:生成SSH Key
关于SSH Key的使用和公钥在gitHub、gitLab的配置等,请参考文章:Git使用手册:使用SSH Key及配置SSH key公钥
关于GIT 工作区、暂存区、本地仓库、远程仓库的概念及关系,请参考文章:Git使用手册:工作区、暂存区、本地仓库、远程仓库
关于GIT 从远程仓库下载项目到本地工作区的操作,请参考文章:Git使用手册:git clone 克隆下载远程仓库项目工程到本地工作区

关于GIT Checkout的使用,请参考文章:Git使用手册:git checkout 创建分支、切换分支

关于Git status命令使用解读,请参考文章Git使用手册:git status 查看本地工作区、暂存区中文件的修改状态

关于Git diff和Git add命令使用,请参考文章:Git使用手册:git diff 、 git add 、 git diff --cached 命令详解

关于Git commit命令使用详解,请参考文章:Git使用手册:git commit -m/-am/-a -m 提交文件至本地仓库区

关于Git fetch命令使用,请参考文章:Git使用手册:git fetch 将远程仓库的分支及分支最新版本代码拉取到本地

关于Git pull命令使用,请参考文章:Git使用手册:git pull origin 拉取代码到本地,解决拉取代码时发生的文件冲突

关于Git push命令使用,请参考文章:Git使用手册:git push 推送提交本地仓库代码文件到远程仓库



1)使用命令查看所有分支提交历史

命令:git log 

当我们想要查看某一个项目下的所有提交历史的时候,只需要使用git log名称即可查看,如图所示:


图中我们可以看到若干条以commit 版本号来分割的提交记录,排序的方式是日期倒序排列的,也就是最近的提交历史在最上面。

commit关键字后面的一串即为版本号。每一条提交记录中,标识了提交时的版本号。

再往下看,会看到Author和Date,有时候还会在Author前看到Merge。

Merge:为进行合并操作的记录(使用命令进行合并或使用操作界面进行合并)。

Author:为本次提交的作者(提交人)。

Date:为提交的日期时间。

注意:其中包含Merge字样的提交,表示这次提交为分支提交合并操作。在我们使用git log命令进行查看历史提交记录时,就可以查看到其中的合并的操作。

通过这些历史操作记录,可以便于我们在后续进行版本回退等操作。


2)若提交历史中包含了Merge字样,则证明这次提交为提交合并操作,如果只想看提交操作的话,可以使用如下命令,即可只查看提交操作的历史记录,将提交合并操作过滤出去。

命令:git log --no-merges

作用:过滤合并merges操作的历史记录

结果如图所示:


可以看到,显示出来的记录均为提交操作的历史记录,过滤掉了提交合并操作的历史记录。



3)如果只想看提交合并操作的历史记录的话,可以使用如下命令,即可查看提交合并操作的历史记录,将提交操作过滤出去。

命令:git log --merges

结果如图所示:


可以看到,显示出来的记录均为提交合并操作的历史记录,过滤掉了提交操作的历史记录。


4)查看提交合并历史记录中每一次提交更新时的文件修改统计情况

命令:git log --stat


这里会发现,提交合并的历史记录显示出来了,但其中没有显示文件修改统计情况,所以我们要把提交合并的历史记录过滤掉。

结合上面提到的第二条命令得出如下命令:

命令:git log --stat --no-merges 

执行后如图所示:


这里,我们所查看到的文件修改统计情况就是没有提交合并操作的记录了。


5)查看某一个文件的提交历史记录

命令:git log 文件名

在我们通过git log --stat --no-merges 查看到每一次提交的文件修改统计后,可以针对性的查看某一次提交中的某个文件的修改情况,或直接查看项目中某一个文件的提交修改统计情况。

注意,此处的文件名需要使用绝对路径

执行命令后,如图:


6)查看某一个文件的提交历史中每次提交时具体的变更

当我们想要了解某一个文件的每次提交时具体的修改变更情况的话,可以使用该命令进行查看。

命令:git log -p 文件名

注意,此处的文件名需要使用绝对路径

执行后,如图所示:


从图示中我们可以看到,每一次提交中,指定文件的变更情况及具体变更内容都有所展示,其中变更所表示的含意我之前的文章有所介绍,可以点击Git使用手册:git diff 、 git add 、 git diff --cached 命令详解查看。

7)缩短版本号

由于使用git log后,commit关键字后面显示版本号时,默认显示40位版本号,不利于阅读。而在gitlab/github中均为短版本号(前7位)进行显示的。所以如果需要缩短版本号显示的话,可以执行如下命令:

命令:git log --abbrev-commit

执行后,效果如图所示:


从图中我们可以看到,每次提交或提交合并操作的历史记录的版本号均缩短为了7位长度的版本号。

8)控制git log命令显示的信息条数

在执行git log命令的时候,默认会将所有的提交及提交合并操作的历史记录显示出来,如果中间的操作太多的时候,不便于阅读和查阅。故git log 提供了控制显示的信息条数的命令,来满足按条数进行显示的需求。

命令:git log -n

其中n为数字

直接执行命令,我们会看到很多的历史记录显示了出来,如图所示:


执行控制条数命令后,如图所示(这里我们设置显示条数为5条):


可以看到,显示的信息确实从之前的很多条变更为了设置的数量的条数。

9)查看指定日期之前的提交历史记录

命令:git log --before date

其中date为日期,此处不支持日期时间格式,仅支持根据日期进行过滤(不包含当天)。

执行命令后如图所示:


命令:git log --until date

其中date为日期,此处不支持日期时间格式,仅支持根据日期进行过滤(不包含当天)。

执行命令后如图所示:


注:上面两条命令产生结果相同

10)查看指定日期之后的提交历史记录

命令:git log --after date

其中date为日期,此处不支持日期时间格式,仅支持根据日期进行过滤(不包含当天)。

执行命令后如图所示:


命令:git log --since date

其中date为日期,此处不支持日期时间格式,仅支持根据日期进行过滤(不包含当天)。

执行命令后如图所示:


注:上面两条命令产生结果相同
同时也可以将指定日期前和指定日期后组合使用,进行按条件过滤。
命令:git log --after date --before date 
执行后如图所示:

从图中可以看到,已经按照过滤条件将满足条件的历史操作记录显示出来了。

注意:命令中after可以替换为since,before也可以替换为until,没有固定限制。

11)将提交合并历史记录中的Date变更为根据当前日期计算的相对时间进行显示(例如:8 Hours ago)
命令:git log --relative-date
由于在工作中,gitlab或github中,对于每一条的操作记录,都有绝对时间与相对时间两种显示,考虑到使用者的习惯也是不同的,故git log同样提供了转换绝对时间为相对时间的功能,若使用者有需要,可以使用该命令调整日期显示形式。
执行命令后如图所示:






git log命令相关的所有选项,可以根据使用者的需要进行组合使用,上面分开来写只是为了便于理解与演示,对于不理解的地方可以留言进行讨论。



如您有其他问题,希望可以通过留言得形式及时交流,有书写错误和可优化的地方也希望及时提出,感谢。


猜你喜欢

转载自blog.csdn.net/u013374164/article/details/79091677