无法运行挂接/更新后:没有这样的文件或目录
Thx到这http://danbarber.me/using-git-for-deployment/伟大的文章我设法有一个远程服务器在git控制下。不幸的是我不得不改变服务器。无法运行挂接/更新后:没有这样的文件或目录
现在完成在教程的所有步骤和运行
git push origin master
后,我得到:
error: cannot run hooks/post-update: No such file or directory
To [email protected]:../var/git/myproject.git
我已经试过很多次和变化。我换成
#!/bin/sh
为
#!/bin/bash
阅读Git - remote: error: cannot run hooks/post-receive: No such file or directory
反正据我检查(多次)之后的路径是正确的。
我想知道为什么说:../ var而不是:/ var,但我不知道这是从哪里来的。
有关如何使这项工作再次的任何建议?
../
表示您正在查看您目前所在的目录。你可以看到你目前与
PWD其中
所以
错误:无法运行钩/更新后:没有这样的文件或目录 要[email protected]:../ VAR/git/myproject.git
表示没有名为myproject.git的文件位于那里,也许您需要将该文件移动到目录中。
有时文本编辑器在文本中输入非ASCII字符。我有同样的问题,所以我用'记事本'创建了一个新文件,它解决了我的问题。
如果您已经提供了777个权限并且问题仍然存在,那是因为如果您从vim复制了文本,脚本文件中可能会出现回车符(^ M)。
要查看,如果是这样的问题:cat -v /path/file
如果是这样的问题,你可以简单地通过sed -i -e 's/\r//g' /path/file
有点晚了原来的海报解决它,但如果它有助于别人谁做它与我所做的一样,EOL问题也可能导致此错误。我抓了一会儿,试图弄清楚为什么我的钩子不能在Web服务器上工作,但是在我的本地机器上工作。原来是我的服务器想要LF和我的机器正在做CRLF。转换它并解决问题。
你可以发布'ls .git/hooks'和'cat .git/hooks/post-update'的输出吗? – 2014-10-08 13:23:41
在服务器上运行'ls -l .git/hooks'。确保'更新后'脚本是可执行的。确保'.git'和'.git/hooks'目录的权限是正确的。 – 2014-10-08 13:41:00
'#!'行上的回车符? http://serverfault.com/questions/592702/no-such-file-or-directory-error-when-trying-to-execute-startup-script-in-debian – 2014-10-08 14:06:39