git pull操作失败的问题

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

1
2
3
4
5
6
7
8
9
10
11
12
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,于是执行命令:

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

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

  • 作者: Sam
  • 发布时间: 2017-11-10 22:53:13
  • 最后更新: 2019-12-09 23:03:26
  • 文章链接: https://ydstudios.gitee.io/post/a774f745.html
  • 版权声明: 本网所有文章除特别声明外, 禁止未经授权转载,违者依法追究相关法律责任!