1、编写 ./git/compose-commit-msg.sh 文件

  1. #!/bin/sh
  2. # 获取当前分支
  3. line=$(head -n +1 .git/HEAD)
  4. branch=${line##*/}
  5. echo "branch: $branch"
  6. # 获取变更号
  7. user=`cat .git/system-change-code.txt | grep systemChangeCode`
  8. user=${code##*=}
  9. echo "code: $code"
  10. # 获取当前提交者的信息
  11. user=`git config user.name`
  12. echo "user: $user"
  13. if [ -z "$code" ] ; then
  14. echo "NEED SYSTEM-CHANGE-CODE";
  15. exit 1;
  16. fi
  17. # $1 参数 就是 .git/COMMIT_EDITMSG 文件
  18. # 组合提交信息
  19. commit=[$code]$(cat $1)" "${branch}_${user}
  20. # echo "所有参数: $*"
  21. echo "commit-msg: $commit"
  22. # 将组合的信息重新输出到 .git/COMMIT_EDITMSG 文件
  23. echo "$commit" > "$1"

2、编写 .git/system-change-code.txt 文件

  1. # 定义系统变更号常量(自己维护)
  2. systemChangeCode=abc123456

3、在 commit-msg hooks里面载入compose-commit-msg.sh脚本

修改 .git/hooks/commit-msg 文件

#!/bin/bash
# husky

# 加入下面代码
. "$(dirname "$1")"/compose-commit-msg.sh

4、提交测试

# 保留git commit 的类型
git commit -m 'test: 测试提交'

# 回车之后,触发钩子,执行脚本,组合提交信息

# git log 查看提交的信息:
[abc123456]test: 测试提交 dev_xiao