对于这篇http://danbarber.me/using-git-for-deployment/篇文章,我设法在git控件下设置了一个远程服务器。
不幸的是,我不得不改变服务器。
现在完成教程中的所有步骤并运行
git push origin master
我明白了:
error: cannot run hooks/post-update: No such file or directory
To root@myproject.com:../var/git/myproject.git
我尝试了很多次和变化。我换了
#!/bin/sh
代表
#!/bin/bash
阅读Git - remote: error: cannot run hooks/post-receive: No such file or directory
后无论如何,只要我检查(多次)路径都是正确的。
我想知道它为什么说:../ var而不是:/ var但我不知道它来自何处。
有关如何重新开始工作的任何建议吗?
答案 0 :(得分:9)
如果您已授予777权限且问题仍然存在,那是因为如果您从vim复制了文本,脚本文件中可能会有回车符(^ M)。
要查看这是否是问题:.
`-- target
`-- appassembler
|-- bin
| |-- basic-test
| `-- basic-test.bat
`-- repo
`-- org
`-- codehaus
`-- mojo
`-- appassembler-maven-plugin
`-- it
`-- platforms-test
|-- 1.0-SNAPSHOT
| |-- maven-metadata-appassembler.xml
| `-- platforms-test-1.0-SNAPSHOT.jar
`-- maven-metadata-appassembler.xml
如果这是问题,您可以通过cat -v /path/file
答案 1 :(得分:0)
../
表示您正在查看上面目录所在的目录。您可以看到您目前所处的位置
PWD
所以
错误:无法运行hooks / post-update:没有这样的文件或目录 to root@myproject.com:../ var / git / myproject.git
意味着那里没有名为myproject.git的文件,也许您需要将该文件移到目录中。
答案 2 :(得分:0)
有时文本编辑器会在文本中输入非ASCII字符。我有同样的问题,所以我用'Notepad'创建了一个新文件,它解决了我的问题。
答案 3 :(得分:0)
对于原始海报来说有点晚了,但是如果它对我这样做的人有帮助,EOL问题也会导致这个错误。我试着弄清楚为什么我的钩子不能在网络服务器上运行,但是在我的本地机器上工作了一段时间。原来我的服务器想要LF而我的机器正在做CRLF。转换它,问题解决了。