Git commit消息中附带jira_id/issue_id

简介

在查询git log时,如何知道commit是对应哪一期的需求?
手动在commit信息中,填写jira_id是一个可行的办法,但一期的需求往往由多个commit,如果每个commit中都填写一次jira_id的话,那明显不是程序员的范了。
一般公司里都用到JIRA 或 Redmine等工具。当开发需求/解决bug时都有对应的jira_id或issue_id。
本文主要演示如何让git commit消息中附带jira_id/issue_id

效果图

效果图

步骤

  • 拉取一个带jira_id的分支
    拉取分支

这里我们拉取了一个jira_id为SLCDTY-21的关于food的功能分支

  • 修改项目根目录下的.git/hooks/commit-msg文件,修改头部如下
# !/bin/sh
COMMIT_FILE=$1
COMMIT_MSG=$(cat $1)
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
JIRA_ID=$(echo "$CURRENT_BRANCH" | grep -Eo "[A-Z0-9]{1,10}-?[A-Z0-9]+")
MSG_WITHOUT_COMMENT=$(grep -v '^\s*#' $COMMIT_FILE |grep -v '^\s*$')
if [ -n "$JIRA_ID" -a -n "$MSG_WITHOUT_COMMENT" ]; then
    echo "$MSG_WITHOUT_COMMENT@$JIRA_ID" > $COMMIT_FILE
    echo "JIRA ID '$JIRA_ID', matched in current branch name, prepended to commi
t message. (Use --no-verify to skip)"
fi
  • 编辑分支并add
    git add 代码

  • commit
    git add 代码

  • git log –oneline|emojify |less
    git add 代码

参考链接

git 颜文字commit

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注