我正在设置一个环境,我可以将在我的工作站上本地完成的更改推送到“Hub”存储库(这是一个远程),然后更新后挂钩将自动更新我的登台网站,即“Prime”。我这样做是为了在我推送到远程集线器时可以看到我的更改会自动反映在我的暂存站点中。
此设置基于本文。我的服务器是 Windows 2012,我在服务器和我的工作站(Windows 7)上都使用 MSysGit。
当我手动执行所有操作时,一切正常 - 从我的本地存储库推送到集线器,然后手动获取/合并到素数。我的问题是当我尝试通过更新后挂钩完成获取/合并时。
当我对集线器进行更改时,我得到的输出是:
c:\Code4X\GIT\stage>git push stage master
Counting objects: 11, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 518 bytes, done.
Total 6 (delta 5), reused 0 (delta 0)
remote:
remote: **** Pulling changes into Live [Stage's post-update hook]
remote:
remote: hooks/post-update: line 12: cd: /c/websites/myproject.staging: No
such file or directory
To w:/stage.git
ce1e2ea..93e11f4 master -> master
我的更新后挂钩是:
#!/bin/sh
echo
echo "**** Pulling changes into Live [Stage's post-update hook]"
echo
cd /c/websites/myproject.staging || exit
unset GIT_DIR
git pull stage master
exec git update-server-info
我可以毫无问题地启动 bash cmd shell 和 cd 到目录,所以我不确定问题是什么。
我也试过:
- 在我的 PATH 中包括 git\cmd
- 将我试图 cd 到的路径括在引号 (") 中
- 让我的 shebang 指向 #!/c/progra~1/git/bin/sh
希望这是显而易见的。关于问题是什么的任何想法?