相关文章:
关于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命令相关的所有选项,可以根据使用者的需要进行组合使用,上面分开来写只是为了便于理解与演示,对于不理解的地方可以留言进行讨论。
如您有其他问题,希望可以通过留言得形式及时交流,有书写错误和可优化的地方也希望及时提出,感谢。