本文小编为大家详细介绍“因文件权限导致git fetch命令执行失败怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“因文件权限导致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
出现权限错误,这种多个命令 && 组合的形式即使中间命令报错了,整体执行报错也不会输出错误,所以日志一开始并没有提示有什么错误,后来把多个命令从第一个命令开始执行,再一个个加后面的命令,才定位到问题。
读到这里,这篇“因文件权限导致git fetch命令执行失败怎么解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。