实际工作中 Git Commit 代码提交规范是什么样的?

前言

Git 是我们日常工作中使用最为广泛的分布式版本代码控制系统,因此在我们的实际工作中,git commit 代码提交规范能够让每一次代码提交都变得有据可循,方便后续的代码审查、问题追踪和版本管理。同时,规范的提交信息也能够为自动化工具提供便利,如生成变更日志、自动化部署等。

git commit 规范写法示例

首先我们一起来看看行业统一认可且标准的 angular 项目的 git commit 规范写法。

基本格式

首先一个规范的 git commit message 通常包含 Header、Body 和 Footer 三部分,各部分之间使用空行分隔。

<header>
// 空一行
<body>
// 空一行
<footer>

Header 必填

描述提交类型和简短说明。格式为:<类型>(<作用域>): <主题>(<type>(<scope>): <subject>)。

  • 类型(Type): 必填,指明本次提交的目的,如 feat 表示新开发的功能(feature)、fix 表示修复 bug、refactor 表示代码重构等。
  • 作用域(Scope): 可选,描述修改的影响范围,如模块名、功能名等,视项目不同而不同。
  • 主题(Subject): 必填,是 commit 简明扼要的提交描述。长度建议不超过 50 个字符。
feat(payment): 微信支付功能集成

Body 可选

详细说明本次 commit 修改的内容。使用空行分隔段落,保持可读性。

- 新增微信支付SDK依赖
- 实现支付结果回调处理
- 添加支付相关的单元测试

Footer 可选

主要用于关联 Issue、描述破坏性变更(BREAKING CHANGE)等。

Closes #889
BREAKING CHANGE: 旧版支付回调接口已废弃,需迁移至 /api/v2/callback

实际工作常用的 git commit 规范写法

其实在实际开发工作中很多时候我们主要关注和使用的是 git commit message 的 Header 部分。Header 通常包含了提交的类型、作用域和简短的主题描述,这些信息对于快速了解每次提交的内容和目的已经足够。

描述提交类型和简短说明。格式为:<类型>(<作用域>): <主题>

格式:type(scope) : subject

常用的提交类型包括

提交类型描述示例
feat新功能增加(feature)feat: add user login feature
fix修复BUGfix: correct user authentication
refactor代码重构(既不是新增功能,也不是修复 Bug)refactor: simplify user validation logic
docs文档/注释docs: update API documentation
style代码风格相关无影响运行结果的style: format code with prettier
test测试相关test: add unit tests for login feature
build影响构建系统或外部依赖的更改(例如:gulp,broccoli,npm)build: update webpack config
revert代码撤销修改revert: revert commit 12345abc
ci持续集成的配置文件和脚本的变动(例如:Travis,Circle,BrowserStack,SauceLabs)ci: update Travis configuration
chore依赖更新/脚手架配置修改等chore: upgrade React to the latest version
perf性能优化perf: optimize virtual DOM diffing algorithm

Git 相关学习资料

原创作者: Can-daydayup 转载于: https://www.cnblogs.com/Can-daydayup/p/18881315
<think>嗯,用户之前问过如何获取更多的提交信息,比如日志的详细信息,现在他们又想知道提交标题和正文的区别。看起来他们可能是在使用Git进行版本控制,想要更好地组织他们的提交信息。 首先,我需要确认用户对Git的基本概念是否了解。提交标题和正文是Git提交信息的两部分,但用户可能不清楚它们各自的用途和最佳实践。用户可能遇到了提交信息混乱的问题,或者想提高项目的可维护性,所以需要明确区分这两部分。 接下来,我应该解释标题和正文的不同之处。标题是简短描述,正文是详细说明。比如标题要简明扼要,正文可以分点说明改动的原因、影响等。还要提到一些约定,如标题行不超过50字符,正文每行72字符,这些是常见的规范,但用户可能不知道。 然后,用户可能需要示例来理解。给出一个具体的例子,展示好的标题和正文是什么样的,以及不好的例子作为对比。这样用户能直观看到区别。 另外,用户可能想知道如何在实际操作中编写这样的提交信息,比如使用git commit命令时如何输入多行内容,或者使用-m和-F选项的区别。可能还需要提醒他们使用某些工具或IDE时如何正确输入正文内容。 最后,总结两者的区别,强调清晰提交信息的重要性,帮助团队协作和后期维护。可能还要提到相关的最佳实践,比如约定式提交,让用户有进一步学习的资源。</think>在版本控制系统(如 Git)中,提交的**标题(Subject)**和**正文(Body)**是提交信息(Commit Message)的两个组成部分,它们的核心区别如下: --- ### 一、提交标题(Subject) #### 1. **核心作用** - **简短概括**:用**一行**简明描述提交的**核心目的**。 - **快速索引**:在日志浏览(如 `git log --oneline`)时直接显示标题,帮助快速定位提交。 #### 2. **格式要求** - **首字母大写**:例如 `Fix: Update login validation`。 - **长度限制**:通常不超过 **50 个字符**(避免被截断)。 - **动词开头**:使用 `Fix`, `Add`, `Update`, `Remove` 等动词明确动作。 - **无结尾标点**:一般不使用句号 `.`。 #### 3. **示例** ```plaintext Fix: Resolve user login timeout issue ``` --- ### 二、提交正文(Body) #### 1. **核心作用** - **详细解释**:多行文本,说明**为什么修改**(动机)、**如何实现**(方法)、**影响范围**。 - **补充细节**:描述技术细节、关联问题(如 Issue 编号)、注意事项。 #### 2. **格式要求** - **空行分隔**:标题和正文之间需有**一行空白行**。 - **段落清晰**:可分段或分条目(用 `-` 或 `*` 符号)。 - **行长限制**:每行建议不超过 **72 字符**(避免自动换行混乱)。 - **使用完整句子**:可包含标点符号。 #### 3. **示例** ```plaintext Fix: Resolve user login timeout issue - 增加 Redis 连接池配置,防止数据库连接耗尽 - 修复 Session 过期时间计算错误(原为毫秒,应为秒) - 关联 Issue: #123 ``` --- ### 三、对比表格 | 特性 | 提交标题 | 提交正文 | |---------------------|---------------------------|---------------------------| | **长度** | 单行,≤50 字符 | 多行,每行 ≤72 字符 | | **内容重点** | **做了什么** | **为什么做、如何做** | | **显示场景** | `git log --oneline` | `git log` 完整查看 | | **标点符号** | 无句号 | 可正常使用标点 | | **强制要求** | 必填 | 可选(简单提交可省略) | --- ### 四、实际提交示例 #### 好的提交信息 ```plaintext Feat: Add user profile image upload - 支持上传 PNG/JPG 格式图片(限制大小 5MB) - 使用 AWS S3 存储文件,生成访问签名 URL - 修复上传时文件名特殊字符转义问题 ``` #### 差的提交信息 ```plaintext fix bug ``` --- ### 五、操作建议 1. **命令行提交**: - 单标题提交:`git commit -m "Fix: Correct API endpoint"` - 标题+正文提交:用 `git commit`(不接 `-m` 参数)打开编辑器输入多行内容。 2. **工具辅助**: - 使用 IDE(如 VSCode、IntelliJ)的 Git 插件,可直观分栏输入标题和正文。 3. **规范参考**: - **约定式提交(Conventional Commits)**:标准化提交格式(如 `fix:`, `feat:`, `BREAKING CHANGE:`)。 --- 通过区分标题和正文,可以显著提升提交信息的可读性和可维护性,尤其在团队协作或回溯代码历史时作用关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值