我是git的新手,所以如果我在这里滥用术语,我会道歉(请纠正我),但我会尽我所能.
我正在尝试在Web服务器上设置一个裸git repo(hub)和一个开发站点工作副本(prime).我试过在这篇文章之后模仿它.我希望每当推送集线器repo时都要更新开发工作副本.我的印象是,正确的钩子是这样的post-update,我已经创建了这样:
#!/bin/sh
whoami
cd /path/to/working-copy/
RET=`git pull`
echo $RET
Run Code Online (Sandbox Code Playgroud)
当我将更改从本地存储库推送到裸集中心时,我从更新后的脚本中获得以下输出:
remote: sites
remote: fatal: Not a git repository: '.'
Run Code Online (Sandbox Code Playgroud)
但是,如果我以用户"站点"的身份SSH进入服务器并手动执行此脚本,那么这个钩子或脚本可能会出现什么问题?
我有一个使用gitolite设置的中央git repo.
我想设置一个钩子,这样每当用户推送到repo时,它会执行其他地方的拉动,然后进行一些自动化测试.
到目前为止,我只想表现它.
在hooks目录中,我在更新后创建了以下脚本名称:
#!/bin/sh
cd /home/git/www/epicac
git pull
Run Code Online (Sandbox Code Playgroud)
当我使用./post-update调用此脚本时,它完全符合我的要求.
但是,每当我挂钩时自动调用它,我得到:致命:不是git存储库:'.'
知道为什么会这样吗?