我是git的新手,所以如果我在这里错误地使用了术语,我道歉(并请纠正我),但我会尽我所能。
我正在尝试在一台web服务器上设置一个空的git repo (中心)和一个开发站点的工作副本(prime)。我试着模仿this article来设计它。我希望每当中心存储库被推送到时,开发工作副本都要更新。我的印象是,正确的钩子是post-update,我是这样创建的:
#!/bin/sh
whoami
cd /path/to/working-copy/
RET=`git pull`
echo $RET更新
当我将更改从本地存储库推送到空集线器时,我从更新后脚本获得以下输出:
remote: sites
remote: fatal: Not a git repository: '.'但是,如果我以用户‘站点’的身份通过SSH登录到服务器并手动执行此脚本,那么这个钩子或脚本可能出了什么问题呢?
发布于 2010-11-05 03:40:47
以下是最终起作用的脚本。我认为我最初遗漏的阻止它远程工作的部分是unset GIT_DIR
#!/bin/sh
cd /path/to/working-copy/ || exit
unset GIT_DIR
git pull repo branch
exec git-update-server-info发布于 2010-12-26 12:14:07
相反,尝试:
#!/bin/sh
cd /path/to/working-copy/
env -i git pull发布于 2014-05-15 19:40:08
尽管如此,GIT_DIR仍然可以正常工作。
当您在其他地方错误地设置了GIT_DIR时,就会出现问题。
你可以直接添加: GIT_DIR=.git/ It就行了
https://stackoverflow.com/questions/4043609
复制相似问题