Git Push遇[remote rejected]错误:.git/objects目录权限问题求助
Git Push失败:.git/objects目录权限异常的解决办法
先贴出你遇到的错误日志:
Enumerating objects: 38, done. Counting objects: 100% (38/38), done. Delta compression using up to 8 threads Compressing objects: 100% (21/21), done. Writing objects: 100% (22/22), 14.40 KiB | 921.00 KiB/s, done. Total 22 (delta 17), reused 0 (delta 0), pack-reused 0 error: unable to write file ./objects/ec/3a800eea2d9c0fd32db2d5943c2c059ab79b10: Permission denied To ssh://mysshAdress.git ! [remote rejected] feat/ficha-28-09-wtdb -> feat/ficha-28-09-wtdb (unable to migrate objects to permanent storage) error: failed to push some refs to 'ssh://mysshAdress.git'
这种问题大概率是本地或远程仓库的.git/objects目录权限错乱导致的,给你几个靠谱的解决步骤:
本地仓库权限修复
- 如果你之前用
sudo执行过Git命令,大概率是.git目录被root用户接管了,直接把所有权改回当前用户:sudo chown -R $USER:$USER .git - 要是权限还是有问题,可以重置Git目录的标准权限(文件644,目录755):
find .git -type f -exec chmod 644 {} \; && find .git -type d -exec chmod 755 {} \;
远程仓库权限修复
错误里出现了remote rejected,说明远程仓库的对象存储目录也可能有权限问题:
- 登录到你的远程服务器,找到仓库的路径(比如
/var/git/repos/your-repo.git) - 同样修改所有权(假设远程用
git用户管理仓库):sudo chown -R git:git /path/to/your/repo.git - 重置远程仓库的权限:
find /path/to/your/repo.git -type f -exec chmod 644 {} \; && find /path/to/your/repo.git -type d -exec chmod 755 {} \;
其他排查点
- 检查本地磁盘是不是满了?虽然错误提示是权限,但磁盘满也可能触发类似报错
- 如果是协作仓库,问问其他开发者有没有修改过远程仓库的权限配置
内容的提问来源于stack exchange,提问作者luigi160'
相关产品推荐
相关产品推荐

