git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found

一:问题描述
由于很久没有建仓了,今天写了点新代码想要提交到github上去,结果先是在git branch -M main报了个错,告诉我error: refname refs/heads/master not found,解决完之后,就在push的时候又告诉我remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
我只是想建个仓提个代码而已,咋还出了这么多幺蛾子呢…
好了,废话不多说,接下来说解决办法,,
二:GitHub把默认的主分支master换成了main
从 2020 年10 月 1 日开始,GitHub 上所有新创建的源代码库都将被命名为「main」。在此之前,GitHub 默认使用「master」来命名源代码存储库的主要版本。开发者在他们的计算机上复制「master」,并在其中添加自己的代码,然后将更改合并回「master」库。
为什么要用main来替代之前的“master”呢?GitHub 解释说,「『main』是我们在 GitHub 上看到的最受欢迎的替代词。我们喜欢这个词,因为它很简短、能完整地保留你的肌肉记忆,而且翻译成多种主流语言都很通达。」作为表率,我们看到 GitHub 的库早就用上了新命名。
不过,GitHub 补充说,「这项变更不会影响你的现有库,也就是说,现有库的默认分支命名保持原状。」
所以就出现了现在多了一行

git branch -M main;这个是创建了主分支main
如果你执行 git branch -M main 出现error: refname refs/heads/master not found的时候,

不要担心 只需要先执行

git add .	
git commit -m "init"
然后在执行 git branch -M main 就可以了

三 push提交的时候,github将密码换成了令牌
一)github为什么要把密码换成令牌?
我们描述了我们的动机,因为我们宣布了对 API 身份验证的类似更改,如下所示:
1.近年来,GitHub 客户受益于 GitHub.com 的许多安全增强功能,例如双因素身份验证、登录警报、经过验证的设备、防止使用泄露密码和 WebAuthn 支持。 这些功能使攻击者更难获取在多个网站上重复使用的密码并使用它来尝试访问您的 GitHub 帐户。 尽管有这些改进,但由于历史原因,未启用双因素身份验证的客户仍能够仅使用其GitHub 用户名和密码继续对 Git 和 API 操作进行身份验证。

从 2021 年 8 月 13 日开始,我们将在对 Git 操作进行身份验证时不再接受帐户密码,并将要求使用基于令牌(token)的身份验证,例如个人访问令牌(针对开发人员)或 OAuth 或 GitHub 应用程序安装令牌(针对集成商) GitHub.com 上所有经过身份验证的 Git 操作。 您也可以继续在您喜欢的地方使用 SSH 密钥。
2.修改为token的好处
令牌(token)与基于密码的身份验证相比,令牌提供了许多安全优势:
唯一: 令牌特定于 GitHub,可以按使用或按设备生成
可撤销:可以随时单独撤销令牌,而无需更新未受影响的凭据
有限 : 令牌可以缩小范围以仅允许用例所需的访问
随机:令牌不需要记住或定期输入的更简单密码可能会受到的字典类型或蛮力尝试的影响
(二 )如何生成自己的token
1.在个人设置页面,找到setting,
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第1张图片
2.选择开发者设置Developer setting
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第2张图片
3.git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第3张图片
3.选择个人访问令牌Personal access tokens,然后选中生成令牌Generate new token,
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第4张图片
4.设置token的有效期,权限等
选择要授予此令牌token的范围或权限。
要使用token从命令行访问仓库,请选择repo。
要使用token从命令行删除仓库,请选择delete_repo
其他根据需要进行勾选
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第5张图片
5.生成token令牌
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第6张图片
如下红框中是新生成的token,记得保存一下,因为页面一刷新就看不到了,黄框中是刷新后的token的显示;
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第7张图片
6.之后用你自己的token进行登录,将token粘贴到输入密码的位置,然后成功push代码
git push 提交输入密码无法提交?以及解决git branch -M main error: refname refs/heads/master not found_第8张图片
也可以 把token直接添加远程仓库链接中,这样就可以避免同一个仓库每次提交代码都要输入token了

git remote set-url origin https://@github.com//.git
:换成你自己得到的token
:是你自己github的用户名
:是你的仓库名称

例如:

git remote set-url origin https://[email protected]/liumx/test2.git

四 常见问题
如果push的时候没有出现输入密码的选项,先执行

	git config --system --unset credential.helper

就可以看到输入密码选项了。

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