Windows Git后期更新挂钩“;“不是目录”;错误

Windows Git后期更新挂钩“;“不是目录”;错误,windows,git,post-update,Windows,Git,Post Update,我正在尝试在windows环境中设置git更新后挂钩。代码如下: #!/bin/sh cd /c/inetpub/vhosts/mywebsite || exit unset GIT_DIR git pull hub master exec git-update-server-info 当我从shell运行这个程序(sh post update)时,一切都很好。但推后我有一个错误: hooks/post-update: line 7: cd: /c/inetpub/vhosts/mywebsi

我正在尝试在windows环境中设置git更新后挂钩。代码如下:

#!/bin/sh
cd /c/inetpub/vhosts/mywebsite || exit
unset GIT_DIR
git pull hub master
exec git-update-server-info
当我从shell运行这个程序(sh post update)时,一切都很好。但推后我有一个错误:

hooks/post-update: line 7: cd: /c/inetpub/vhosts/mywebsite: Not a directory

我做错了什么?

您可以尝试使用不同的路径,一个相关的路径。例如,您的根路径

#!/bin/sh
unset GIT_DIR
cd ..
git checkout -f

使用
cd..
返回文件夹的根路径。然后,
git checkout-f
用于在每次更新回购时强制更新工作副本。

当您在git Bash shell中时,如果您尝试执行
cd/c/inetpub/vhosts/mywebsite
,会发生什么情况?一切正常,当前目录已更改为/c/inetpub/vhosts/mywebsite。如果在shell中执行
echo$USER
,并将其放入钩子脚本中进行推送,会得到什么?它给出同样的结果吗?另外,如果您将
/c/inetpub/vhosts/mywebsite
的绝对路径更改为相对路径,这是否有效?(为此,请记住,钩子脚本是在存储库的根目录中执行的,例如,如果您的钩子脚本是
/c/repos/repo.git/hooks/post update
,那么它是在
/c/repos/repo.git
中执行的)不确定我做的事情是否正确,但是
echo$USER
在shell和推送之后都给我空行。使用相对路径会给我相同的错误
hooks/post update:第8行:cd:../../inetpub/vhosts/mywebsite:不是目录
获取错误:“不是git存储库(或任何父目录):.git”