从您的GitHub帐户中,转到设置→开发人员设置→个人访问令牌→生成新令牌(输入密码)→填写表格→单击生成令牌→复制生成的令牌,它将类似于ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta
从控制面板中找到凭据管理器→Windows凭据→查找git:https://github.com
→编辑→在密码处使用GitHub个人访问令牌替换密码→完成
如果找不到git:https://github.com
→单击添加通用凭据→Internet地址将是git:https://github.com
,您需要输入用户名和密码将为您的GitHub个人访问令牌 →单击“确定”即可完成
单击菜单栏右侧的聚光灯图标(放大镜),然后键入密钥链访问,按Enter键启动应用程序→在Keychain Access中,搜索github.com
→查找github.com
的Internet密码条目→相应地编辑或删除该条目→完成
对于Linux,您需要使用用户名配置本地GIT客户端和电子邮件地址。
$ git config --global user.name "your_github_username"
$ git config --global user.email "your_github_email"
$ git config -l
一旦配置好GIT,我们就可以开始使用它来访问GitHub。 例如:
$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
> Cloning into `YOUR-REPOSITORY`...
Username: <type your username>
Password: <type your password or personal access token (GitHub)
现在将给定的记录缓存在您的计算机中以记住令牌:
$ git config --global credential.helper cache
如有需要,您可以随时通过以下方式删除缓存记录:
$ git config --global --unset credential.helper
$ git config --system --unset credential.helper
现在尝试使用-v
选项进行拉取以进行验证
$ git pull -v
Linux/Debian (克隆方式如下):
git clone https://<tokenhere>@github.com/<user>/<repo>.git
如果您正在使用 PhpStorm,请转到菜单 Git → pull,并选择通过 个人访问令牌 进行身份验证。输入您的 PAT
,这将允许您拉取/推送更改。github.com
并使用您在GitHub上生成的token
来编辑密码。
现在尽情享受吧!git remote set-url origin https://<githubtoken>@github.com/<username>/<repositoryname>.git
克隆时:
git clone https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git
它可以在任何操作系统上运行(Mac、Windows或Linux)。
缺点:您必须记住或应该需要在本地对每个存储库执行此操作。因此,我建议大家使用上述步骤。
对于那些没有这个条目的人:可以创建一个。一种方法是克隆一个项目。然后它会要求您输入用户名和密码。而不是密码,请提供令牌,然后就会创建该条目。
git push
操作时,它会提示输入个人访问令牌。简单地重置现有凭据是不起作用的。 - J. Peterson使用我的帐户→设置→开发者设置→个人访问令牌→生成新令牌。
git remote set-url origin https://<token>@github.com/<username>/<repo>
git remote -v
命令会直接暴露密钥,使攻击者能够完全访问您的 GitHub 账户。 - Joshua Kolden.git
”目录的源代码 Tarball 文件。 - Joshua Kolden如果您的Git密码被缓存在credential.helper中,请取消设置:
git config --local --unset credential.helper
或者,如果您已经在全局范围内设置了凭据:
git config --global --unset credential.helper
现在前往你的GitHub账户设置
点击开发者设置
选择个人访问令牌
使用给定的权限生成一个令牌,例如:
现在在Git存储库中执行git pull
提供用户名和生成的令牌作为密码
这是一个简单明了的解决方案,按步骤操作即可。
运行nano ~/.git-credentials
。删除GitHub行并保存。
git config --global credential.helper store
风险较高,因为令牌实际上存储在文件~/.git-credentials
中
运行git pull
并只提供用户名和密码一次
现在它不会再次询问用户名和访问令牌了!
GitHub已对密码认证进行了更改。如果您正在尝试使用用户名和密码访问Git,则不允许这样操作。因此,请使用个人访问令牌来代替密码,在任何地方访问Git。
以下是生成个人访问令牌的步骤。
单击此处获取令牌 - https://github.com/settings/tokens
第1步 - 打开GitHub并使用您的凭据登录。
第2步 - 单击设置菜单。
第3步 - 在设置菜单中,单击开发人员设置
第4步 - 从开发人员设置菜单中,单击个人访问令牌
第5步 - 在个人访问令牌中,单击生成新令牌按钮。
第6步 - 现在填写所需的详细信息,例如备注、过期时间、选择范围,然后单击生成令牌按钮。
第7步 - 之后,将生成一个新令牌。复制生成的令牌并使用该令牌来使用用户名和令牌访问Git。
如果您正在使用Windows操作系统,请按照以下步骤操作。
打开控制面板→ 用户帐户→ 管理您的凭据→ Windows凭据。
这会显示所有通用凭据。找到您的 GitHub URL,然后单击它。现在单击编辑按钮。然后将从GitHub生成的个人访问令牌添加到密码字段中。最后单击保存按钮。
现在您可以访问 Git。
如果您正在使用 Android Studio 访问 Git,并要求输入密码,请在任何地方添加 GitHub 个人访问令牌 而不是密码。
$ echo url=https://account@github.com | git credential reject
您应该使用相同的URL,但将account
替换为您自己的用户名(例如,在我的情况下,它看起来像是echo url=https://bk2204@github.com
)。
接下来,当您尝试推送或拉取时,Git 将提示您输入用户名和密码。对于用户名,请输入您的 GitHub 用户名,并在密码字段中生成一个新的个人访问令牌(可在相应的设置页面上完成)并将其粘贴到密码字段中。如果您正在使用命令行工作,则可能看不到任何指示表明密码已成功粘贴;这是正常现象,因此只需按下Enter即可。
这样将保存个人访问令牌到您的凭据管理器中,以便下次使用,假设您设置了凭据管理器。如果您不确定是否已设置凭据管理器,请运行git config credential.helper
并查看是否有任何输出。
如果您没有设置凭据管理器,则应该添加一个,以便无需记忆您的令牌。根据操作系统运行以下命令之一:
git config --global credential.helper manager
;git config --global credential.helper osxkeychain
;git config --global credential.helper libsecret
;或者libsecret
不可用,则在 Linux 上运行 git config --global credential.helper store
。然后,您可以再次尝试推送或拉取,直到不再提示为止。
git config --global credential.helper osxkeychain
和 git config --global credential.helper
但是在我的控制台中没有任何反应,所以我将尝试第一个解决方案。只有一个问题,url=https://account@github.com
是什么?是我的存储库链接还是我的 GitHub 链接? - Daemesecho url=https://account@github.com | git credential reject
正是我所需要的。谢谢! - Nolan Strait最简单的解决方案(2022年5月):
git push
在GitHub中从设置→ 开发人员设置生成访问令牌。
如果您以前克隆了存储库并将其作为origin,则可以更改身份验证方式,因此:
git remote set-url origin https://<token>@github.com/<username>/<repo>.git
如果您要在2021年8月13日之后克隆存储库,则可以使用普通的克隆命令,并将生成的访问令牌设置为密码字段。find . -type f -path '*/.git/*' -name 'config' -exec sed -i 's%https://github.com/%git@github.com:%g' {} \;
它将递归搜索.git
文件夹中名为config的任何文件,并查找并替换https URL为git@github。我建议只在简单的存储库上执行此操作,其中您知道您拥有纯净的远程。我还没有测试它在不同设置下的工作方式。你的情况可能会有所不同! - robmsmt对于 Ubuntu,请按照以下步骤进行:
在https://github.com/settings/tokens,生成一个令牌。
git push
username: user_github_username
password: 使用生成的令牌
代替密码。
如果你的电脑没有将SSH密钥添加到GitHub账户中,我会在答案结尾处为你提供添加密钥的说明。你需要先进行此步骤。
当推送失败后,执行以下操作:
git remote set-url origin git@github.com:{user_id}/{project_name}.git
然后再次推送即可解决问题。
接下来我将展示我的情况。
(并且我会指导你如何处理你的情况。)
首先,当我添加、提交和推送时,遇到了这个问题:
然后,我的当前Git日志如下所示。
最后,这是我解决问题的方法。
在我的案例中,
{project_name} <-> open-idea-pool
{user_id} <-> milochen0418
{branch_name} <-> master
(你的branch_name可能是main,而不是master)
当我推送失败时,我需要的唯一命令是:
git remote set-url origin git@github.com:{user_id}/{project_name}.git
然后我通过以下方式再次推送它:
git push -u origin {branch_name}
就我的案例举个例子,
git remote set-url origin git@github.com:milochen0418/open-idea-pool.git
git push -u origin master
它有效。
-- 顺便说一下,这是创建用于GitHub账户的SSH密钥的过程。
您可以参考这两个链接来完成。这里的信息支持Mac、Windows和Linux系统。
此外,如果您想要克隆一个新项目,您可以执行以下命令:
git clone git@github.com:{user_id}/{project_name}.git
ssh
而不是使用 用户名/密码(token)
的方法。好的建议。使用 git@github.com:<repo_url>
代替 https://github.com/<repo_url>
。 - Francois