在我们用git进行版本控制的时候 很多时候都是围绕着issue开发,每次git的提交都关联上issue对于我们后期的排查有很大的帮助,但是每次commit 的时候都关联下issue难免有点烦躁,所以我们今天可以通过在本地配置一下来实现每次commit 自动关联对应的issue。
-
在项目的
.git/hooks
目录下创建一个prepare-commit-msg
文件
copy下面的脚本到上面创建的
prepare-commit-msg
文件里
#!/bin/sh
NAME=$(git branch | grep '*' | grep -Eo "#\d+")
DESCRIPTION=$(git config branch."$NAME".description)
echo "$NAME"': '$(cat "$1") > "$1"
if [ -n "$DESCRIPTION" ]
then
echo "" >> "$1"
echo $DESCRIPTION >> "$1"
fi
- 因为commit 的时候会执行上面那个脚本所以要给这个脚本添加可执行权限
chmod u+x prepare-commit-msg
-
验证
-
查看真实的提交日志
可以看出我们提交的内容是heiqie test
,但是实际提交到git 里的commit内容是
#2: heiqie test
, push 到远程分支,就可以在对应的issue上看到提交点了
- 不足
这种方式配置需要分支上有issue号比如 issue#223