最近把一些项目从gitlab上拉取下来之后,发现提交代码总是报这个错误:
1 | git commit -m "feat(LT-814): 调整目录结构" |
查看目录,文件确实存在:
1 | ll .git/hooks |
排查过程
检查文件权限: 确保 commit-msg
文件具有执行权限。
1 | chmod +x .git/hooks/commit-msg |
检查 Shebang 行: 确保 commit-msg
钩子脚本的第一行是有效的 shebang(例如 #!/bin/sh
或 #!/usr/bin/env bash
)。例如:
1 |
|
这个文件是maven插件自动安装的,看起来也没啥问题。
检查文件编码和行结尾: 有时文件编码或行结尾可能会导致问题。确保文件使用正确的编码并且是 Unix 风格的行结尾(LF)。
如果你使用 Vim,可以通过以下命令设置文件格式为 Unix:
1 | :set ff=unix |
当前用的是Mac,是基于Unix内核的系统,执行完以上操作,问题解决了。