如何用GitHub Access Token推送代码?遇认证及分支匹配问题
解决GitHub代码推送失败的问题
一、处理「src refspec main does not match any」错误
该错误是因为本地分支与远程分支不匹配,按以下步骤处理:
- 先查看本地和远程分支的具体情况:
git branch -a - 根据分支状态选择对应操作:
- 若本地只有
master分支,远程需要推送到main分支:
选项1:直接将本地master分支推送到远程main分支
选项2:把本地git push origin master:mainmaster重命名为main后再推送git branch -m master main git push origin main - 若远程已有
main分支但本地未同步,先拉取远程分支:git pull origin main
- 若本地只有
二、使用GitHub Access Token解决认证失败问题
GitHub已停用密码认证,需用Access Token替代:
1. 生成Access Token
- 登录GitHub,进入「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」
- 点击「Generate new token」,设置token名称,勾选
repo权限(推送代码必备),设置过期时间后生成,务必复制保存token,仅显示一次。
2. 使用Token的两种方式
方式1:修改远程仓库URL(永久生效)
将token嵌入远程仓库地址,替换原有地址:
git remote set-url origin https://<你的Access Token>@github.com/<你的用户名>/<仓库名>.git
之后执行推送命令即可,无需再输入凭证。
方式2:用Git凭证助手保存Token(推荐)
- 开启凭证自动保存功能:
git config --global credential.helper store - 首次推送时,用户名填写你的GitHub账号,密码填写生成的Access Token,Git会自动保存该凭证,后续推送无需重复输入。
3. 清除旧凭证(若之前保存过密码导致认证失败)
- Windows:控制面板→用户账户→凭据管理器→Windows凭据,删除GitHub相关条目
- macOS:钥匙串访问→搜索GitHub,删除对应密码条目
- Linux:删除
~/.git-credentials文件中的GitHub相关记录
内容的提问来源于stack exchange,提问作者Amit Shakya
相关产品推荐
相关产品推荐

