致命错误';没有这样的文件或目录';尝试通过Git部署时

致命错误';没有这样的文件或目录';尝试通过Git部署时,git,Git,我试图通过Git设置一个网站的部署,但遇到了post接收钩子的问题。这是在Windows服务器上。push的输出如下所示: git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Adam\AppData\Local\Temp\ib1plrg0.ejf git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags

我试图通过Git设置一个网站的部署,但遇到了post接收钩子的问题。这是在Windows服务器上。push的输出如下所示:

git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Adam\AppData\Local\Temp\ib1plrg0.ejf

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream test master:master
Pushing to ssh://cyg_server@192.168.1.109/~/website

Branch master set up to track remote branch master from test.

remote: Starting checkout[K
remote: fatal: Could not switch to '/c/inetpub/': No such file or directory[K
remote: Finished checkout[K
To ssh://cyg_server@192.168.1.109/~/website
   4da534b..8e32d89  master -> master
updating local tracking ref 'refs/remotes/test/master'
#!/bin/sh
echo "Starting checkout"
GIT_WORK_TREE=/c/inetpub/wwwroot git checkout -f
echo "Finished checkout"
#!/bin/sh
echo "Starting checkout"
GIT_WORK_TREE='c:/inetpub/wwwroot' git checkout -f
echo "Finished checkout"
Post接收挂钩的设置如下所示:

git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Adam\AppData\Local\Temp\ib1plrg0.ejf

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream test master:master
Pushing to ssh://cyg_server@192.168.1.109/~/website

Branch master set up to track remote branch master from test.

remote: Starting checkout[K
remote: fatal: Could not switch to '/c/inetpub/': No such file or directory[K
remote: Finished checkout[K
To ssh://cyg_server@192.168.1.109/~/website
   4da534b..8e32d89  master -> master
updating local tracking ref 'refs/remotes/test/master'
#!/bin/sh
echo "Starting checkout"
GIT_WORK_TREE=/c/inetpub/wwwroot git checkout -f
echo "Finished checkout"
#!/bin/sh
echo "Starting checkout"
GIT_WORK_TREE='c:/inetpub/wwwroot' git checkout -f
echo "Finished checkout"
由于某些原因,在推送时,似乎无法更改为wwwroot目录。它肯定就在那里,当从Git Bash中手动运行它时,这行代码本身工作正常,所以我不确定问题出在哪里

作为参考,我已经通过Cygwin和Git 1.9.4安装了OpenSSH。我正在通过SSH连接。通过SSH连接的主目录是C:\Repositories,其中有一个名为website的文件夹,它被初始化为裸Git存储库

我已经就这个错误寻找了几个小时的帮助,但还没有找到任何解决方案。有人能帮忙吗


谢谢。

以防对其他人有所帮助,我已经修复了这个。路径的构造方式是问题所在,因此工作柱接收钩如下所示:

git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Adam\AppData\Local\Temp\ib1plrg0.ejf

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream test master:master
Pushing to ssh://cyg_server@192.168.1.109/~/website

Branch master set up to track remote branch master from test.

remote: Starting checkout[K
remote: fatal: Could not switch to '/c/inetpub/': No such file or directory[K
remote: Finished checkout[K
To ssh://cyg_server@192.168.1.109/~/website
   4da534b..8e32d89  master -> master
updating local tracking ref 'refs/remotes/test/master'
#!/bin/sh
echo "Starting checkout"
GIT_WORK_TREE=/c/inetpub/wwwroot git checkout -f
echo "Finished checkout"
#!/bin/sh
echo "Starting checkout"
GIT_WORK_TREE='c:/inetpub/wwwroot' git checkout -f
echo "Finished checkout"
注意路径周围的引号和更多类似窗口的构造