git pull操作失败的问题

使用git版本控制,提交代码到测试环境,发现代码没有更新,直接在服务器上用命令行操作的时候出现下面的错误:

www@iZ23oqentptZ:~/develop.dameiweb.com/webroot$ git pull
error: Cannot update the ref 'refs/remotes/origin/develop': 
unable to append to .git/logs/refs/remotes/origin/develop: 
Permission denied
From git.dameiweb.com:dm/www.dameiweb.com
 ! 3fa3fb3..297aa33 develop -> origin/develop  
(unable to update local ref)
error: Cannot update the ref 'refs/remotes/origin/master': 
unable to append to .git/logs/refs/remotes/origin/master:
 Permission denied
 ! 0eadc3f..d8ad757  master -> origin/master  
(unable to update local ref)


通过查看文件的权限,发现.git文件夹下文件的权限不对,有的文件不属于git账号(git的用户是www),出现这个情况可能是用不同的账号去执行git命令,譬如我们这就是使用root账号操作过。
解决办法就是用root账户修改.git文件的权限,.git文件的所有者和所属组都是www,于是执行命令:

#文件的所有者和所属组修改成www
chown -R www:www .git 

执行完命令之后,查看文件的权限修改成功后,再切换成www用户,执行git pull,更新成功!
大家切记,linux下权限很重要,不用乱用不用的用户,这样会导致文件的所有者和所属组发生改变!

相关文章

此处评论已关闭