我创建了一个
.git/hooks/commmit-msg
钩子,它可以在 git commit
上正确触发,但最重要的是,就像其他 git 操作一样,例如
还触发
commit-msg
钩子。
有没有办法识别
commit-msg
文件内触发它的 git 操作类型,并隔离某些逻辑以仅适用于 git commit
?
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