Yorkie git 挂钩总是因 "not found" 而失败

Yorkie git hooks always fail with "not found"

我正在使用 yorkie 2.0.0,并且不能在我的 git 挂钩中 运行 任何自定义 shell 脚本。我的目录结构如下所示:

<project root>
|-- .githooks
|   |-- commit-msg
|
|-- package.json
|-- .git
|   |-- hooks
|   |   |-- <all the proper yorkie git hooks files>
|   |
|   |-- <other .git stuff>
|
|-- <lots of other irrelevant files>

我的 package.json 有这个 gitHooks 部分:

"gitHooks": {
  "commit-msg": ".githooks/commit-msg $GIT_PARAMS"
}

commit-msg 文件肯定是可执行的,这是 ls -l 行:

-rwxr-xr-x 1 dan dan 400 Sep 14 08:51 commit-msg

创建提交时,我得到以下输出:

 > running commit-msg hook: .githooks/commit-msg $GIT_PARAMS
/bin/sh: 1: .githooks/commit-msg: not found

commit-msg hook failed (add --no-verify to bypass)

我试过各种不同的目录结构,都没有找到。我已将 package.json 中的 gitHook 脚本更改为 ls .githooks 之类的内容,然后文件就会显示出来。

这是怎么回事?为什么 yorkie 找不到我的文件?

(我用 husky 标记了这个,因为 yorkie 是哈士奇的一个分支,变化非常小,而且没有 yorkie 标签。这里的问题可能不是 yorkie 特有的)

原来 not found 是一条红鲱鱼。这是行尾问题。

我把commit-msg里面的行尾转成LF后,一切正常。我在我的 .gitattributes 中添加了以下行,这样就不会在我每次检查分支时都发生这种情况:

.githooks/* text eol=lf