github推送代码报错

前言

最近想提交一些代码到github上时发现提交的时候报错
Remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
Authentication failed for ‘https://github.com/xxxxx/xxxx.git/’
报错的大致意思就是github在2021/8/13开始远程推送不再支持密码验证了,改成token验证了


具体的解决步骤如下

第一步:登录进github界面点击Settings
在这里插入图片描述
第二步:在界面左侧找到下面的菜单并点击Developer settings
在这里插入图片描述
第三步:在下面的页面点击Personal access tokens
在这里插入图片描述
第四步:在下面页面点击Generate new token
在这里插入图片描述
第五步:给token起一个描述名字(名字可以随便起)
在这里插入图片描述
第六步:设置token多久后过期
在这里插入图片描述
第七步:设置token拥有的权限(具体每个权限代表的意思有兴趣的可以自己去了解,对于是给自己用的token来说,就全部勾选了,代表最高权限)
在这里插入图片描述
第八步:点击Generate token,生成一个token
在这里插入图片描述
第九步:复制token(关掉当前页面,就再也看不到当前token,请确保自己已复制)
在这里插入图片描述
以上生成token的步骤就完结了


下面是怎么使用该token

如果你是已经克隆过远程仓库的代码的,也就是在本地已经有远程仓库地址,而且本地分支和远程仓库分支也建立了关联关系,那么点击Git Bash Here 进入git 命令行模式执行下面的命令就可以正常推送代码了

    git remote set-url <alias> https://<your_token>@github.com/<username>/<repo>.git
    <alias>:包括<>在内的全部替换成你设置的远程仓库地址的别名
    <you_taken>:包括<>在内的全部替换成你复制的token
    <username>:包括<>在内的全部替换成你的github上的username
    <repo>:包括<>在内的全部替换成你要访问的github上的仓库名称

就像下面执行一样
在这里插入图片描述

设置成功后就可以正常推送代码到github上面了


如果你本地还没有设置远程仓库的地址,或是远程仓库的地址你拉取(fetch)、推送(push)都不行,那么执行下面的步骤即可

第一步:点击Git Bash Here 进入git 命令行模式
在这里插入图片描述

第二步:使用git命令查看是否已经设置了github远程仓库地址 git remote -v

如果没有设置github远程仓库就会显示空,如下图

在这里插入图片描述

如果设置了github远程仓库就会显示下面结果

在这里插入图片描述
第三步:把当前设置的没用的远程仓库地址在本地删除(如果第二步没有设置的可以忽略掉这一步直接进入后面步骤)

使用 git remote rm <alias> 命令
<alias>:远程仓库在本地设置的别名,在使用上面一条命令时,包括<>在内全部替换成你本地的远程仓库别名

在这里插入图片描述
第四步:添加正确的远程仓库的地址

使用 git remote add <alias> https://<your_token>@github.com/<username>/<repo>.git 命令

<alias>:远程仓库在本地设置的别名,在使用上面一条命令时,包括<>在内全部替换成你本地的远程仓库别名
<you_taken>:包括<>在内的全部替换成你复制的token
<username>:包括<>在内的全部替换成你的github上的username
<repo>:包括<>在内的全部替换成你要访问的github上的仓库名称

在这里插入图片描述

第五步:拉取远程仓库的分支信息到本地
使用 git fetch 命令 将远程仓库的分支信息拉取到本地
在这里插入图片描述

第六步:使本地的分支和远程仓库的分支建立对应关系

这里分为三种情况:

第一种:本地分支和远程的分支都已经存在,那么使用下面这个命令

使用 git branch --set-upstream-to=<alias>/<remote_branch> <branch> 命令
<alias>:远程仓库在本地设置的别名,在使用上面一条命令时,包括<>在内全部替换成你本地的远程仓库别名
<remote_branch>:包括<>在内全部替换成你远程仓库的分支名称
<branch>:包括<>在内全部替换成你本地仓库的分支名称

在这里插入图片描述
这样就可以正常拉取和推送代码了

第二种:远程分支已经有了,但本地还没有对应分支
对于这种情况,在本地创建一个和远程仓库对应的分支出来(可以使用idea,也可以使用git命令行的方式),然后执行第一种的命令
这样第二种情况也可以正常推送代码了

第三种:本地新创建的一个分支,而远程仓库没有对应分支

使用 git push --set-upstream <alias> <branch>  命令在远程仓库创建指定名称的分支
<alias>:远程仓库在本地设置的别名,在使用上面一条命令时,包括<>在内全部替换成你本地的远程仓库别名
<branch>:包括<>在内全部替换成你想要创建的远程仓库的分支名称

在这里插入图片描述
然后执行第一种的命令
这样第三种情况也可以正常推送代码了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值