如何解决Git控制台中git push -u origin master命令报错问题
Git Push 到 GitHub 失败的排查与解决步骤
一、常见错误原因
结合GitHub的认证规则,git push失败大概率是以下情况:
- HTTPS方式下仍使用密码认证(GitHub已在2021年8月取消密码支持)
- 个人访问令牌(PAT)权限不足或已过期
- 远程仓库地址配置错误
- 本地Git凭证缓存了旧的认证信息
二、分步解决方案
1. 先检查远程仓库地址
- 执行命令查看当前远程地址:
git remote -v - 确认地址格式:HTTPS应为
https://github.com/[你的用户名]/[仓库名].git,SSH应为git@github.com:[你的用户名]/[仓库名].git - 地址错误则修改:
# HTTPS格式示例 git remote set-url origin https://github.com/你的用户名/你的仓库名.git # SSH格式示例 git remote set-url origin git@github.com:你的用户名/你的仓库名.git
2. 用个人访问令牌(PAT)完成HTTPS认证
步骤1:生成PAT
- 登录GitHub,依次进入:右上角头像 → Settings → Developer settings → Personal access tokens → Tokens (classic)
- 点击Generate new token,填写令牌名称、设置过期时间,勾选
repo权限(仓库读写必备),其他权限按需勾选 - 生成后复制令牌,务必保存好,关闭页面后无法再次查看
步骤2:在Git中使用PAT
- 执行
git push -u origin master,当提示输入用户名时,输入你的GitHub用户名 - 提示输入密码时,粘贴刚才生成的PAT即可
步骤3:配置凭证缓存(避免重复输入)
- Windows:
git config --global credential.helper wincred - macOS:
git config --global credential.helper osxkeychain - Linux:
# 缓存15分钟,可修改timeout参数调整时长,示例为1小时 git config --global credential.helper 'cache --timeout=3600'
3. 切换到SSH认证方式(更稳定,无需频繁输入令牌)
步骤1:生成SSH密钥
- 打开终端执行:
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱" - 按回车确认默认路径、密码(可留空),完成密钥生成
步骤2:添加公钥到GitHub
- 复制公钥内容:
- Windows:
clip < ~/.ssh/id_ed25519.pub - macOS:
pbcopy < ~/.ssh/id_ed25519.pub - Linux:
xclip -sel clip < ~/.ssh/id_ed25519.pub
- Windows:
- 登录GitHub,进入:Settings → SSH and GPG keys → New SSH key,粘贴公钥,设置名称后保存
步骤3:修改远程地址并测试
- 修改远程地址为SSH格式:
git remote set-url origin git@github.com:你的用户名/你的仓库名.git - 测试连接:
ssh -T git@github.com - 出现
Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.即为成功
4. 清除本地旧凭证缓存
如果之前保存了旧密码导致认证冲突:
- Windows:打开凭据管理器 → Windows凭据 → 删除所有GitHub相关条目
- macOS:打开钥匙串访问 → 搜索
github.com→ 删除相关条目 - Linux:执行
git credential-cache exit,或删除~/.git-credentials文件
内容的提问来源于stack exchange,提问作者Mara Inés
相关产品推荐
相关产品推荐

