迁移SSD至新PC后单个Git仓库推送失败(failed to push some refs)求助
特定Git仓库推送失败的排查思路
检查仓库远程URL配置
执行git remote -v确认远程地址格式(HTTPS/SSH)是否和正常仓库一致,有没有迁移后出现的地址错误。如果是HTTPS,留意凭据是否有效;如果是SSH,确认密钥匹配。验证WSL2下的权限设置
- 用
ls -la查看当前仓库目录及文件的权限,对比正常仓库,确保当前用户对.git目录及所有文件有读写权限。 - 若旧SSD挂载在WSL2的
/mnt目录,检查挂载参数是否合理(比如是否带uid=1000,gid=1000),避免Windows权限继承导致的问题。
- 用
排查仓库专属Git配置
执行git config --local --list,对比正常仓库的配置,重点看user.name、user.email、credential.helper、远程相关项,有没有异常配置。同时检查git config --local push.default是否和其他仓库一致。测试远程连接与认证
- SSH协议:运行
ssh -T git@<远程主机地址>(比如GitHub是git@github.com),测试认证是否成功,排查密钥错误或权限拒绝问题。 - HTTPS协议:尝试手动输入凭据推送:
git push https://<用户名>:<密码>@<远程仓库地址>,排除凭据缓存失效的问题。
- SSH协议:运行
检查本地仓库完整性
- 执行
git fsck检测仓库是否有损坏的对象或引用,修复潜在的本地仓库问题。 - 临时创建测试分支推送:
git checkout -b test-push,然后git push origin test-push,如果成功,说明原分支可能存在特殊引用冲突(虽然pull正常,但可以进一步排查)。
- 执行
对比Git环境差异
- 用
git --version查看当前Git版本,原系统Ubuntu18和现Ubuntu20的Git版本可能有差异,尝试升级/降级测试(若可行)。 - 检查
credential.helper配置,WSL2下的凭据助手可能和原生Ubuntu不同,尝试重置为credential.helper=store或cache测试。
- 用
内容的提问来源于stack exchange,提问作者reaker
相关产品推荐
相关产品推荐

