我是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进入服务器并手动执行此脚本,那么这个钩子或脚本可能会出现什么问题?
Ty *_*y W 170
这是最终有效的脚本.我认为我最初失踪的那个阻止它远程工作的是unset GIT_DIR
#!/bin/sh
cd /path/to/working-copy/ || exit
unset GIT_DIR
git pull repo branch
exec git-update-server-info
Run Code Online (Sandbox Code Playgroud)
Ger*_*iro 28
尝试改为:
#!/bin/sh
cd /path/to/working-copy/
env -i git pull
Run Code Online (Sandbox Code Playgroud)