0

我正在使用 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 是 husky 的一个分支,变化很小,并且没有 yorkie 标签。这里的问题可能不是 yorkie 特有的)

4

1 回答 1

0

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

在我将内部的行尾转换commit-msg为 LF 后,一切正常。我将以下行添加到我的.gitattributes,这样每次我签出分支时都不会继续发生这种情况:

.githooks/* text eol=lf
于 2019-09-14T13:23:11.463 回答