git commit-msg 钩子仅在特定提交类型上触发

问题描述 投票:0回答:1

我创建了一个

.git/hooks/commmit-msg
钩子,它可以在
git commit
上正确触发,但最重要的是,就像其他 git 操作一样,例如

  • git拉
  • git 合并
  • ...

还触发

commit-msg
钩子。

有没有办法识别

commit-msg
文件内触发它的 git 操作类型,并隔离某些逻辑以仅适用于
git commit

git githooks
1个回答
0
投票

commit-msg
git commit
git merge
调用。在创建合并提交的
git merge
期间,会在
.git
下创建 3 个临时文件。它们是
MERGE_HEAD
MERGE_MODE
MERGE_MSG
。您可以测试是否有任何文件存在。

#!/bin/bash

gitdir=$(git rev-parse --absolute-git-dir)
mergemode=${gitdir}/MERGE_MODE
if [[ -f "$mergemode" ]];then
    # echo git merge, exit
    exit 0
fi

# not git merge
© www.soinside.com 2019 - 2024. All rights reserved.