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
github推送代码报错_第1张图片
第二步:在界面左侧找到下面的菜单并点击Developer settings
github推送代码报错_第2张图片
第三步:在下面的页面点击Personal access tokens
在这里插入图片描述
第四步:在下面页面点击Generate new token
github推送代码报错_第3张图片
第五步:给token起一个描述名字(名字可以随便起)
github推送代码报错_第4张图片
第六步:设置token多久后过期
在这里插入图片描述
第七步:设置token拥有的权限(具体每个权限代表的意思有兴趣的可以自己去了解,对于是给自己用的token来说,就全部勾选了,代表最高权限)
github推送代码报错_第5张图片
第八步:点击Generate token,生成一个token
在这里插入图片描述
第九步:复制token(关掉当前页面,就再也看不到当前token,请确保自己已复制)
github推送代码报错_第6张图片
以上生成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 命令行模式
github推送代码报错_第7张图片

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

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

在这里插入图片描述

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

github推送代码报错_第8张图片
第三步:把当前设置的没用的远程仓库地址在本地删除(如果第二步没有设置的可以忽略掉这一步直接进入后面步骤)

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

github推送代码报错_第9张图片
第四步:添加正确的远程仓库的地址

使用 git remote add  https://@github.com//.git 命令

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

在这里插入图片描述

第五步:拉取远程仓库的分支信息到本地
使用 git fetch 命令 将远程仓库的分支信息拉取到本地
github推送代码报错_第10张图片

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

这里分为三种情况:

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

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

github推送代码报错_第11张图片
这样就可以正常拉取和推送代码了

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

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

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

github推送代码报错_第12张图片
然后执行第一种的命令
这样第三种情况也可以正常推送代码了

你可能感兴趣的:(git,github,git)