预提交挂钩在 macOS 中不起作用,但在 Ubuntu 中起作用

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

我有一个 git 预提交挂钩脚本来在提交期间验证某些内容。

这在我的脚本中

.githooks/pre-commit

#!/bin/bash

echo "Here I am!"

这是文件权限

在 ubantu 中,当我提交任何内容时,我可以查看回显消息,而当我在 MacOS 中执行相同的操作时,我收到此错误

致命:无法运行.githooks/pre-commit:没有这样的文件或目录

git 配置是

.git/config

换行类型为CRLF

此外,当我像这样从 CLI 直接运行文件(在 MacOS 中)时,它会给出所需的输出。

./.githooks/pre-commit
我的git版本是

2.32.0 (Apple Git-132)


    

bash git macos githooks
2个回答
0
投票
您可以尝试一下这个方法,看看它是否适合您?

brew link --overwrite git brew update git
您应该拥有最新版本的 git -> 2.35.x

现在转到本地存储库,即项目文件夹,然后转到项目文件夹下的

.git/hooks 目录。

您可以将您的挂钩文件放在这里。 IE。对于预提交,文件名应为

pre-commit (不带任何扩展名)。

每当您尝试提交到该特定存储库时,这都应该有效。您的情况的主要问题似乎是目录。钩子应该位于项目文件夹的

.git/hooks 目录中。

请参阅下面的屏幕截图。


0
投票
由于macos安全限制,称为扩展属性(xattr)。

mac-osx-file-permissions-has-how-to-remove-that

xattr -d com.apple.provenance pre-commit
    
© www.soinside.com 2019 - 2024. All rights reserved.