Github克隆、拉取正常但无法推送,已排查SSH权限问题求协助
以下是针对你遇到的「可正常clone/pull、网页端能推送但本地git push失败」问题的排查方案:
检查远程仓库URL配置
执行git remote -v查看当前远程仓库的fetch和push地址是否一致且正确。部分仓库可能存在fetch用HTTPS、push需用SSH的情况,或者URL填写错误。若发现异常,用git remote set-url origin <正确的仓库地址>修改。确认本地分支与远程分支的关联
执行git branch -vv查看本地分支是否已关联对应的远程分支。如果分支后没有显示关联的远程分支信息,执行git push --set-upstream origin <你的分支名>完成绑定,之后再尝试push。清理Git凭据缓存
如果使用HTTPS方式访问仓库,可能存在缓存的凭据过期或错误的情况:- 查看当前凭据助手:
git config --global credential.helper - 根据助手类型清除缓存:
- Mac系统:
git credential-osxkeychain erase,按提示输入仓库URL后确认清除 - Windows系统:
git credential-manager-core erase,按提示操作
- Mac系统:
- 重新执行push,输入有效的凭据(若开启2FA,需用个人访问令牌PAT代替密码)
- 查看当前凭据助手:
验证本地Git用户配置
执行git config user.name和git config user.email,确认输出的用户名和邮箱与你的GitHub账号一致。若不一致,用git config --global user.name "你的用户名"和git config --global user.email "你的邮箱"修改。检查是否开启双重认证(2FA)
若你的GitHub账号开启了2FA,使用HTTPS方式push时不能直接用账号密码,必须生成*个人访问令牌(PAT)*并作为密码使用。生成PAT时需勾选repo权限,之后push时输入账号,密码栏填写PAT即可。
内容的提问来源于stack exchange,提问作者Raghav Rach

