Push failed Failed with error: Unable to create temporary file: Permission denied

/ Markbug / 没有评论 / 414浏览

昨天新搭建的linux git 服务器 今天准备提交代码时遇到了下面的错误:

Push failed
Failed with error: Unable to create temporary file: Permission denied
sha1 file '<stdout>' write error: Broken pipe
failed to push some refs to 'git@jilinwula.com/jilinwula.git'

看错误信息,貌似是权限的问题,但我明明已经将客户端的密钥信息添加到了服务器,怎么还会有权限问题呢? 这里我们忽视了一个重要的地方,那就是在服务端初始化git仓库时,新创建的git项目的文件的用户组及用户必须是git权限的。否则,提交代码时就会出现上述的错误。于是查看服务器上创建git项目的权限果然不是git权限:

执行命令:ll // 显示详细信息

git.png

修改.git项目文件目录的用户组及用户:

执行命令:chown -R git:git jilinwula.com.git //-R 递归将此文件夹下的所有文件都改成同一个用户组及用户 

然后继续查看.git项目的信息:

git.png

这回正确了,然后在客户端提交代码一切正常,提交成功。

执行命令:git push // git 提交代码到云端版本库