我正在尝试将我的网站置于版本控制之下。我使用ExpanDrive直接在服务器上工作,它使用MacFUSE将SFTP连接挂载为本地卷,我可以使用终端和其他本地应用程序访问该卷。
无论如何,一切都很顺利,直到我尝试提交,当我收到这条消息时:
fatal: exec .git/hooks/pre-commit failed.如果我尝试手动运行exec命令,我会看到以下内容:
-bash: /Volumes/1&1 Internet/website/.git/hooks/pre-commit: Permission denied
-bash: exec: /Volumes/1&1 Internet/website/.git/hooks/pre-commit: cannot execute: Unknown error: 0我已经尝试使用我的SFTP客户端来授予.git目录下的所有内容完全(777)权限,但仍然没有成功。还有没有人知道我还能做些什么?
发布于 2009-04-19 03:21:03
通过授予.git目录下的所有内容完全(777)权限,您已经在.git/hooks中启用了Git附带的所有示例脚本,通常是关闭它们的执行位。当您尝试commit时,现在可执行的示例预提交脚本尝试运行以将提交格式化为补丁。
除非这是您想要做的,否则我建议您将chmod /git/hooks/*设置为644,这样钩子脚本就不会执行。
编辑--重置钩子权限可以使您恢复到最初出现问题时的状态。接下来,使用--no-verify标志尝试提交,这将绕过预提交挂钩(以及对提交消息的一些次要检查)。这可能是一种解决办法,但我仍然不明白为什么会出现最初的问题。代码看起来非常简单--如果不启用它,我不知道它如何尝试执行这个钩子。如果以同样的方式失败,那么我会认为ExpanDrive/MacFuse系统没有正确处理权限(但这是非常不可能的)。
https://stackoverflow.com/questions/763956
复制相似问题