所以我有一个裸存储库,用于控制对我们网页的更改。在那个裸的repo是一个post-receive钩子,当我们将更改推送到它时运行。所有钩子都使用以下代码实现对工作目录的更改:
WRK_DIR="/url/to/work/tree/"
GIT_DIR="/url/to/bare/repo.git/"
#Update WRK_DIR with changes pushed into GIT_DIR...
git --work-tree=$WRK_DIR --git-dir=$GIT_DIR checkout -f
无论出于何种原因,我收到以下内容:
remote: fatal: Not a git repository: '/url/to/bare/repo.git/'
我已经验证了该钩子在正确的用户下运行,并且该文件夹具有权限。但无论出于何种原因,钩子都找不到目录,我绝对确定网址是正确的。
运行
cd /url/to/bare/repo.git/
来自钩子内的也在返回
remote: hooks/post-receive: line 13: cd: /url/to/bare/repo.git/: No such file or directory
就像我说的那样,我确信网址是正确的并且没有拼写错误。任何帮助将不胜感激。
答案 0 :(得分:0)
钩子和裸露的仓库都在服务器上,所以我在钩子里放了一些cd来测试它返回的内容。奇怪的是,它返回了我本地机器的内容...不知道为什么,但如果我将变量更改为文件夹的网络位置并转义反斜杠就可以正常执行。