Git工程实践(一)巧用commit message

摘要: 大家都知道所有的版本控制系统比如svn,git等设计的核心价值之一就是为了让代码变更有迹可循,而commit mesage的价值在于让有迹可循的代码对人类更加友好,通常一个恰如其分的commit message表达的信息往往先于代码。

背景

大家都知道所有的版本控制系统比如svn,git等设计的核心价值之一就是为了让代码变更有迹可循,而commit mesage的价值在于让有迹可循的代码对人类更加友好,通常一个恰如其分的commit message表达的信息往往先于代码。

而现实的工程实践中,尤其是大型分布式协作的团队,因开发成员背景、习惯、经验多差异性,commit message的风格参差不齐。

那么有没有优雅而简单方式将commit message按照工程标准来落地呢?

下面分享一个git commit message的实践,其核心是通过git commit template标准化comments,希望可以抛砖引玉。

配置commit message template

通过配置相同的git commit template & markdown syntax 来标准化git message。步骤如下:

  1. 进入~/ 目录,新增__.gitmessage, 内容如下:__

brief introduction.

#brief introdction 必填,概要描述变更内容。
#change item list 选填,针对变更不同模块/业务进行分条描述,使用markdown语法。
#demo
#add xxx open api.
#- add xxx api.
#- add xxx api.
#- add xxx api.

2.编辑.gitconfig文件,新增.gitmessage模版配置。

[commit]

template = ~/.gitmessage

后续在提交代码时候(使用git commit没有指定-m参数)git message将会自动按照模版格式生成。效果如下:

实践建议

  • 正式的commit尽量不要使用 git commit -m指定message信息,避免生成的git log可读性差。
  • commit message 格式优先使用markdown格式,生成的格式将更优雅,通过git log查看可读性更佳。
  • 较大feature发布,git message尽可能丰富,通过概要+变更列表的格式表达,如上图。
  • commit mesaage尽量使用英文。

一些思考

  • 自动化视角,通过git commit template 自动生成comments模版的方式,可以在一定程度减少漏填AoneID的情况,同时可以提升commit message质量,如果要实现严格管控可以增加githook在checkin之前增加校验,或者接入持续集成在静态检测阶段校验git commit log的有效性。
  • 工程视角,git comment, code comment即代码,应该以标准优雅的方式在团队传承。

原文链接

阅读更多干货好文,请关注扫描以下二维码:

原文地址:http://blog.51cto.com/13679539/2112277

时间: 2024-11-13 20:30:01

Git工程实践(一)巧用commit message的相关文章

Git工程开发实践(六)——Git工程实践扩展

Git工程开发实践(六)--Git工程实践扩展 一.Git提交日志规范 1.Git提交日志模板 Git支持对每次提交的日志信息进行规范,可以通过设置提交模板实现.建立一个gitCommitTemplate文件,内容为: #commit message包含三部分,header, body和footer,其中header必选,body和footer可选. # type(<scope>): <subject> #<body> #<footer> #type字段包含

Git工程开发实践(二)——Git内部实现机制

Git工程开发实践(二)--Git内部实现机制 一.Git仓库内部实现简介 Git本质上是一个内容寻址(content-addressable)的文件系统,根据文件内容的SHA-1哈希值来定位文件.Git核心部分是一个简单的键值对数据库(key-value data store).向Git数据库插入任意类型的内容,会返回一个键值,通过返回的键值可以在任意时刻再次检索(retrieve)插入的内容.通过底层命令hash-object可以将任意数据保存到.git目录并返回相应的键值.Git包含一套面

Git工程开发实践(三)——Git常用操作

Git工程开发实践(三)--Git常用操作 一.Git仓库操作 1.Git仓库创建 git init在当前目录中初始化Git仓库git init [project-name]创建一个新目录并初始化仓库初始化git仓库会默认创建一个mater分支,创建名为.git的子目录,内含初始化Git仓库中所有的骨干文件,此时仓库中的文件还没有被跟踪.通过git add命令来实现对指定文件的跟踪,然后执行git commit提交. git add . git commit -m 'initial projec

Git工程开发实践(四)——Git分支管理策略

Git工程开发实践(四)--Git分支管理策略 一.Git版本管理的挑战 Git是非常优秀的版本管理工具,但面对版本管理依然有非常大得挑战.工程开发中,开发者彼此的代码协作必然带来很多问题和挑战:A.如何开始一个Feature开发,而不影响其它Feature?B.由于很容易创建新分支,分支多了如何管理,时间久了,如何知道每个分支是干什么的?C.哪些分支已经合并回了主干?D.如何进行Release的管理?开始一个Release的时候如何冻结Feature, 如何在Prepare Release的时

git中Please enter a commit message to explain why this merge is necessary

今天在使用git时,git pull和git merge时,经常出现如下错误信息: Please enter a commit message to explain why this merge is necessary.(请输入提交消息来解释为什么这种合并是必要的) 解决方法: 1.按“Esc”退出键 2.输入“:wq”,然后按下“Enter”键(说明:要输入英文状态下的冒号) 参考文档 :http://blog.csdn.net/ailo555/article/details/5220227

通过git rebase修改commit message

今天发现一个项目的git commit message中的单词拼错了,需要修改一下.但这样简单的修改,需要通过git rebase才能完成. 首先要git rebase到需要修改message的那个commit的前1个commit.假设commit id是32e0a87f,运行下面的git rebase命令: git rebase -i 32e0a87f 在git bash中运行上面的命令后,会弹出编辑框,在编辑框中会分行依次显示以pick开头的这个commit之后的所有commit messa

git使用总结(包含git commit message 和 changelog 工具的介绍)

[git的配置] 1.配置用户名和邮箱: 分为全局配置和局部配置 --system 系统配置  --global 全局配置    --local 局部配置 Git读取时:优先从local>global>system git config --global user.name name git config --global user.email email 2.别名的配置 使用git st 代替 git status git config --global alias.st status 配置

commitizen和cz-customizable配置git commit message

起因 团队对提交的commit message格式有约定俗称的要求,但是没有一个统一的规范,导致大家提交的commit message或多或少不太一样.因此,需要一个工具来帮助大家统一commit message的格式,也方便后续的分析和拓展. commitizen commitizen 是一个帮助规范commit message的工具.安装后的效果如下图: 安装commitizen npm install -g commitizen 安装adapter commitizen根据不同的adapt

git第四节----git commit message

@git  commit message 什么是git commit message :git commit -m '每次提交时编辑的内容' git commit message的好处:      1.提供更多可查询的信息,用于排查问题      2.过滤重要的内容      3.生成changelog     commit message组成包括header,body,footer三个部分,一般只使用header    header 包含三个部分:type,scope,subject