首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Git 基础 git log的扩展属性,以及常见commit 内容规范

Git 基础 git log的扩展属性,以及常见commit 内容规范

作者头像
zinyan.com
发布2023-07-14 10:46:43
发布2023-07-14 10:46:43
1.3K0
举报
文章被收录于专栏:zinyanzinyan

1.介绍

本篇主要介绍git log命令后,输出的日志内容。让大家能明白提交历史的内容,以及介绍一下常见的比较规范的commit提交中的日志记录写法。

2. git log 查看提交历史

当我们在使用Git进程多次提交之后,我们如果想回顾一下整个项目的提交历史,那么可以直接使用git log 命令进行查询。

示例:

我们直接输入:git log 就会得到类似上面的结果。git会按照时间先后顺序列出所有的提交,最新提交的在最上面显示。

commit:后面的内容是每次提交的SHA-1校验和。

Author :本次提交的作者和邮箱地址。

Date:提交的时间

最后的就是提交说明内容了,也就是我们所说的日志记录。

本次的commit提交内容的介绍。

如果你的记录过多,你会进入到git 的分页器中。退出分页器的方式很简单通过按键(Q)就可以关闭分页器了。

2.1 -p 或 --patch 显示每次提交的差异

我们常见的是在git log后面添加上-p 或--patch 它会显示每次commit提交时所引入的差异(也就是本次提交和仓库最新记录之间的差异)。整个结果会按照补丁的格式输出。

示例:

然后会发现这个log 的输出内容会很多很杂。

因为它会显示log的基本信息以外,还会附带每次提交的变化。当我们进行代码审查,或快速浏览某个提交所带来的变化时,这个参数就非常有用了。

而我们常见的在GitHub上比较两次的更新:

就是基于这个命令进行的。

2.2 --stat 查看每次提交的简略统计信息。

我们使用-p的时候显示的内容太详细了,而只需要知道修改了多少文件等那么就可以使用--stat进行统计了。示例如下:

它在每次提交的下面,列出了所有被修改的文件,有多少文件被修改了以及被修改过的文件有哪些行被移除或添加。

并且在最后还进行有总结。

其中的+ 代表新增,- 代表删除

2.3 --pretty 使用不同的格式展示提交历史。

我们如果不想使用git的默认格式,git内置了其他的几种展示方式供我们选择,例如:

代码语言:javascript
复制
git log --pretty=oneline
git log --pretty=short
git log --pretty=full  //和默认git log 输出的一样
git log --pretty=fuller

这种日志,适用于浏览大量提交记录时使用。

而我们如果想让输出的结果,按照我们指定的格式输出,那么可以使用format指令。示例:git log --pretty=format:"哈希值:%h - 作者:%an,修改时间:%ar 内容:%s "

这种和我们在java开发中使用format格式化时间等原理和写法差不多。

只是它的关键字不一样,具体的关键字如下表:

关键字

说明

%H

提交的完整哈希值

%h

提交的简写哈希值

%T

树的完整哈希值

%t

树的简写哈希值

%P

父提交的完整哈希值

%p

父提交的简写哈希值

%an

作者

%ae

电子邮件

%ad

修订日期(可以使用--date=选项 定制日期显示格式)

%ar

修订日志(按照距今多久显示)

%cn

提交者名称

%ce

提交者电子邮件

%cd

提交日期

%cr

提交日期(按照距今多久显示)

%s

提交说明(也就是commit的提交说明)

通常情况下,提交者大部分就是作者。而在大项目或分布式管理的情况下,作者不一定是提交者。

3. 其他常见的log常用扩展属性

在上面只是介绍和学习了部分的属性配置,下面通过表格的方式进行一个汇总,方便进行查询对照。

选项

说明

-p

按照补丁格式显示每个提交引入的差异

--stat

显示每次提交的修改统计信息

--shortstat

只显示--stat中最后的行数修改,添加,移除统计

--name-only

仅在提交信息后显示已修改的文件清单

--name-status

显示新增,修改,删除的文件清单

--abbrev-commit

仅显示SHA-1校验和所有40个字符中的前几个字符

--relative-date

使用相对时间,而不是完整格式显示日期

--graph

在日志旁以ASCll图形显示分支和合并历史

--pretty

使用其他格式显示提交信息

--oneline

--pretty=oneline --abbrev-commit 合用的简写

--since, --after

显示指定时间之后的提交(since和after这是两个不同的选项,两种都可以生效)

-S

匹配满足字符串的提交记录

-2

显示最近的第2条记录,(这个2可以是任何整数,是几就显示几条记录)

--until, --before

显示指定时间之前的提交(until 和before这是两个不同的选项,两种都可以生效)

--author

显示作者匹配指定字符串的提交

--committer

显示提交者匹配指定字符串的提交

--grep

显示提交说明中包含指定字符串的提交

4. 常见的commit 提交规范

我们常见的commit提交规范,指的是我们每次提交时的内容介绍的写法。该内容主要写法为:

标题行 :描述主要修改类型和内容

主题内容:描述为什么修改,做了什么样的改变,以及思路等等。

页脚注释:Breaking Changes 或 Closed Issues 等

常见类型为:

  • type :commit的类型
  • feat:新特性
  • fix:修改问题(bug修复)
  • refactor:代码重构
  • docs:文档修改
  • style:代码格式修改
  • test:测试用例修改
  • chore:其他修改,例如构建流程,依赖配置等。
  • scope:本次修改影响范围,例如 route,component,utils,build等
  • subject :修改内容的概述
  • body:修改内容的详细描述
  • footer:备注,例如修改后的bug链接等。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 zinyan 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.介绍
  • 2. git log 查看提交历史
    • 2.1 -p 或 --patch 显示每次提交的差异
    • 2.2 --stat 查看每次提交的简略统计信息。
    • 2.3 --pretty 使用不同的格式展示提交历史。
  • 3. 其他常见的log常用扩展属性
  • 4. 常见的commit 提交规范
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档