首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器上的Git post-接收钩子错误

服务器上的Git post-接收钩子错误
EN

Stack Overflow用户
提问于 2012-09-14 00:30:35
回答 2查看 1.3K关注 0票数 3

我正试着在我的服务器上安装一个git 'post-receive‘。我在钩子文件中使用了以下代码:

代码语言:javascript
复制
#!/bin/bash
#CONFIG
LIVE="/home/ubuntu/public_html/testing"

read oldrev newrev refname
if [ $refname = "refs/heads/master" ]; then
  echo "===== DEPLOYING TO LIVE SITE ====="
  unset GIT_DIR  
  cd $LIVE
 # ssh-agent $BASH
 # ssh-add /home/ubuntu/.ssh/ubuntu
  git pull --verbose origin  master || echo "git-pull: returned error code"     
  echo "===== DONE ====="
fi

每当我尝试从本地pc推送内容到服务器时,它都会显示以下错误消息:

代码语言:javascript
复制
===== DEPLOYING TO LIVE SITE =====
remote: error: cannot open .git/FETCH_HEAD: Permission denied
remote: 
remote: git-pull: returned error code
remote: ===== DONE =====

有没有人能帮个忙?问题出在哪里?

为了确认,我已经尝试使用相同的用户凭据通过ssh终端运行该命令,并且运行良好。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-18 01:48:14

最后,我将目录(/home/ubuntu/public_html/ last )的所有权更改为提交/运行钩子的用户,从而解决了这个问题。

票数 2
EN

Stack Overflow用户

发布于 2012-09-14 03:45:19

每当我收到有关权限和FETCH_HEAD的错误消息时,这是因为我在修补某些东西时意外地以根用户身份拉入,这会在根用户拥有的.git目录中创建文件,而我的普通ssh用户无法覆盖这些文件。

我通常运行ls -laR .git | grep root (我相信有更好的方法,我不是系统管理员)来检查是否有根用户拥有的文件。简单地把它们切回去,我就可以像往常一样生活了。

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

https://stackoverflow.com/questions/12410796

复制
相关文章

相似问题

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