2014-10-08 45 views
4

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,但我不知道这是从哪里来的。

有关如何使这项工作再次的任何建议?

+0

你可以发布'ls .git/hooks'和'cat .git/hooks/post-update'的输出吗? – 2014-10-08 13:23:41

+0

在服务器上运行'ls -l .git/hooks'。确保'更新后'脚本是可执行的。确保'.git'和'.git/hooks'目录的权限是正确的。 – 2014-10-08 13:41:00

+3

'#!'行上的回车符? 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

回答

0

../

表示您正在查看您目前所在的目录。你可以看到你目前与

PWD其中

所以

错误:无法运行钩/更新后:没有这样的文件或目录 要[email protected]:../ VAR/git/myproject.git

表示没有名为myproject.git的文件位于那里,也许您需要将该文件移动到目录中。

0

有时文本编辑器在文本中输入非ASCII字符。我有同样的问题,所以我用'记事本'创建了一个新文件,它解决了我的问题。

6

如果您已经提供了777个权限并且问题仍然存在,那是因为如果您从vim复制了文本,脚本文件中可能会出现回车符(^ M)。

要查看,如果是这样的问题:cat -v /path/file
如果是这样的问题,你可以简单地通过sed -i -e 's/\r//g' /path/file

0

有点晚了原来的海报解决它,但如果它有助于别人谁做它与我所做的一样,EOL问题也可能导致此错误。我抓了一会儿,试图弄清楚为什么我的钩子不能在Web服务器上工作,但是在我的本地机器上工作。原来是我的服务器想要LF和我的机器正在做CRLF。转换它并解决问题。

相关问题