解决因文件权限导致git fetch命令执行失败的问题
转载 2017-12-31
最近在工作中遇到一个问题,就是在在一个基于 git 的发布系统中拉取代码,发现无法拉取最新的提交记录,查找相关资料发现是因为文件权限的问题,所以这篇文章主要介绍了关于解决因文件权限导致git fetch命令执行失败的问题,需要的朋友可以参考下。
前言
最近在一个基于 git 的发布系统中拉取代码,发现无法拉取最新的提交记录,通过调试和查看日志文件找到一行错误:error: cannot open .git/FETCH_HEAD: Permission denied
,原因是文件权限问题导致。
问题原因
Permission denied,应该权限问题,到项目 .git 目录下查看文件的用户和组:
发现 FETCH_HEAD 的用户和组都是 root 权限,而发布系统的运行进程是 nobody 用户,所以没有权限执行这个 git 命令:git fetch -q –all
解决办法
于是使用 chown 把该文件用户和组权限都改成 nobody,再试就正常了。
排查问题
更新分支执行的 git 命令如下:
cd /data/vhosts/project && git checkout -q master && git fetch -q –all && git/bin/git clean -fd && git/bin/git reset -q –hard origin/master
最后发现是其中 git fetch -q –all
出现权限错误,这种多个命令 && 组合的形式即使中间命令报错了,整体执行报错也不会输出错误,所以日志一开始并没有提示有什么错误,后来把多个命令从第一个命令开始执行,再一个个加后面的命令,才定位到问题。
相关文章推荐
解析Mysql备份与恢复简单总结与tee命令的使用介绍 2018-03-21
Shell+Linux命令实现日志分析 2018-02-10
Redis教程(十二):服务器管理命令总结 2018-01-19
redis常用命令、常见错误、配置技巧等分享 2017-12-29
通过命令行生成vue项目框架的方法 2018-02-14
使用Linux要改掉几个的命令习惯 2018-02-08
Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同的访问权限账号 2018-02-08
centos 设置定时任务执行指定脚本的方法 2018-01-29
详解 Shell中的grep命令 2018-01-12
ThinkPHP自动验证失败的解决方法 2018-01-30
git相关资料最新加入文章
git相关资料最近一周排列榜
git相关资料最近一个月排列榜
git相关资料总排列榜
Git使用小坑 Out of memory错误的解决方法 2018-01-04
github pull最新代码实现方法 2017-12-20
git 删除分支和回滚的实例详解 2017-12-28
解决因文件权限导致git fetch命令执行失败的问题 2017-12-31
Visual Studio Code 使用Git进行版本控制(图文教程) 2017-12-28
github上传时出现error: src refspec master does not match any解决办法 2018-01-04
一台电脑上,两个及多个git账号配置 2018-07-04
在 Shell 提示符中显示 Git 分支名称的方法 2017-12-31
vscode中利用git通过ssh连接github的方法 2017-12-28
详解git无法pull仓库refusing to merge unrelated histories 2017-12-29