首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取“致命:不是git存储库:‘’”当使用更新后钩子对另一个存储库执行'git pull‘时

获取“致命:不是git存储库:‘’”当使用更新后钩子对另一个存储库执行'git pull‘时
EN

Stack Overflow用户
提问于 2010-10-28 22:00:42
回答 5查看 23K关注 0票数 94

我是git的新手,所以如果我在这里错误地使用了术语,我道歉(并请纠正我),但我会尽我所能。

我正在尝试在一台web服务器上设置一个空的git repo (中心)和一个开发站点的工作副本(prime)。我试着模仿this article来设计它。我希望每当中心存储库被推送到时,开发工作副本都要更新。我的印象是,正确的钩子是post-update,我是这样创建的:

代码语言:javascript
运行
复制
#!/bin/sh
whoami
cd /path/to/working-copy/
RET=`git pull`
echo $RET

更新

当我将更改从本地存储库推送到空集线器时,我从更新后脚本获得以下输出:

代码语言:javascript
运行
复制
remote: sites
remote: fatal: Not a git repository: '.'

但是,如果我以用户‘站点’的身份通过SSH登录到服务器并手动执行此脚本,那么这个钩子或脚本可能出了什么问题呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-05 03:40:47

以下是最终起作用的脚本。我认为我最初遗漏的阻止它远程工作的部分是unset GIT_DIR

代码语言:javascript
运行
复制
#!/bin/sh
cd /path/to/working-copy/ || exit
unset GIT_DIR
git pull repo branch

exec git-update-server-info
票数 184
EN

Stack Overflow用户

发布于 2010-12-26 12:14:07

相反,尝试:

代码语言:javascript
运行
复制
#!/bin/sh
cd /path/to/working-copy/
env -i git pull
票数 29
EN

Stack Overflow用户

发布于 2014-05-15 19:40:08

尽管如此,GIT_DIR仍然可以正常工作。

当您在其他地方错误地设置了GIT_DIR时,就会出现问题。

你可以直接添加: GIT_DIR=.git/ It就行了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4043609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档