1.3 Git日志

git的日志记录了git仓库对文件的所有操作,主要分为三大类:分支的提交日志、文件的修改日志git操作日志。通过查看这些日志信息,可以很好地了解git仓库的历史记录,并根据需要进行版本回退。

1. 查看提交日志

使用的主要命令为git log,通过添加不同的参数,可以显示不同形式的提交日志,下面主要介绍其中常用的几种:

git log

查看版本库的提交(commit)历史:


提交历史是倒序的,最新的提交排在最前面;

  • Git的提交id(commit id)是一个摘要值,这个摘要值实际上是通过sha1算法计算出来的不重复字符串。由此保证了每次提交id的唯一性;

  • Author显示的是提交时优先级最高的配置,比如提交时有--local配置就显示它,没有就显示--global的配置;如上图中:第二次提交时使用的是修改过后的config李四,也就是优先级更高的--local配置;

git log -n

可以查看最近的n次的提交历史,比如通过git log -3查看最近3次的提交历史:


git log --graph

以图形化的形式显示提交历史:


git log --pretty=oneline

以一行的形式显示提交历史:


git log --graph --abbrev-commit

通过--abbrev-commit对提交信息进行简化:


还可以结合--pretty=oneline进行简写:

git log --pretty=oneline  --abbrev-commit


git log --pretty=oneline:"%h - %an, %ar : %s"

还可以按照规定的格式显示日志内容:%h:表示commit id;%an:表示提交人;%ar:表示提交时间;%s:表示提交信息;


git log --all --decorate --oneline --graph

该命令比较厉害,是StackOverflow上网友组装的命令,可以一次性查看所有分支及其提交记录,非常实用:


如上图所示,三个分支devmastertest以及每个分支的提交记录都一次性显示出来了。由于该命令十分常用,但是又很长,不好记忆。所以,我们可以给该命令设置别名(alias),比如取该命令的首字母组成别名dog,在全局下进行配置:

git config --global alias.dog 'log --all --decorate --oneline --graph'


设置好别名之后,就可以通过git dog来执行这条指令了。有关别名的内容,之后会详细进行讲解。

2. 查看修改日志

git blame file_name


如图所示,通过该命令可以清楚查看指定的文件的每次修改。包括修改用户,修改时间等;

9.2 查看操作日志

git reflog

通过该指令可以详细地查看,每次操作所在提交节点的commit id,以及在此提交节点上所执行的操作(指令);并且是倒序显示的,即最近一次操作的序号为{0}:


git log:只能显示当前分支的提交历史,如果进行版本回退,会丢失较后版本的提交信息,如下图所示:


可以看到通过reset进行版本回退,丢失了4th commit的提交信息,此时可通过git reflog查看操作日志的相关操作信息来回到最新的版本。

总结:

总体上来说,操作日志包含了修改日志和提交日志,是最全的git日志;

注意:不是通过git命令,而是手动修改文件,这些修改记录不会被git日志记录。所以,推荐使用git指令进行操作;

版权声明: 本文为智客工坊「AhuntSun」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

results matching ""

    No results matching ""