如何使用个人访问令牌进行git提交?

18

我在GitHub上创建了所有权限保留的个人访问令牌。

我看到了。

git clone https://<username>:<personal_access_token>@github.com/<username>/<project_name>.git

工作。

那么我如何使用个人访问令牌克隆、提交和推送?

像这样

cd /tmp
git clone https://<username>:<personal_access_token>@github.com/<username>/<project_name>.git

cd /tmp/auto_tutorial
git commit --allow-empty -m 'Trigger notification'
git push https://<username>:<personal_access_token>@github.com/<username>/<project_name>.git master

2
是的,就像这样。它不起作用吗?问题出在哪里? - mkrieger1
只需使用 git push origin master 或简单地使用 git push 即可。当您克隆存储库时,仅需要一次 URL。 - slebetman
4个回答

29

登录您的GitHub帐户,然后在https://github.com/settings/tokens上设置“个人访问令牌”。

获得个人访问令牌后,请转到终端并将您的“origin”网址更改为以下内容:

git remote set-url origin https://REPLACE-WITH-TOKEN@github.com/REPLACE-WITH-USERNAME/REPLACE-REPO-NAME.git/

如果这是您第一次创建仓库并且还没有推送过,请按以下方式添加您的初始源

git remote add origin https://REPLACE-WITH-TOKEN@github.com/REPLACE-WITH-USERNAME/REPLACE-REPO-NAME.git/

它对我起作用了,我已经寻找这个解决方案两天了 :) - Luffy D. Monkey

12
尽管可以在URL中使用个人访问令牌,但不建议这样做,因为(a)它会将您的令牌以明文形式存储在其中,从而可以被读取和打印,(b)因为这意味着您必须为每个存储库输入令牌。
最好使用凭据管理器通过设置credential.helper为适合您平台的值,并在提示时输入用户名和令牌作为密码来存储您的凭据。 这样将保存您的凭据以供将来在所有项目中使用。 如果需要使用多个帐户,只需在URL中使用您的用户名(但不是您的令牌),凭据管理器将处理此操作。
大多数平台上要使用的默认凭据管理器是Windows上的"manager"或"wincred"、macOS上的"osxkeychain"以及Linux上的"libsecret"。 您还可以使用"store"将其存储在本地磁盘上的文件中,该选项在所有平台上都可用,但不够安全。
一旦克隆了存储库,您就可以使用"git push origin master"轻松推送,因为您从中克隆的URL将设置为远程"origin"。

1
这听起来接近我所需要的,但我不知道如何“通过设置credential.helper”和“在Linux上使用libsecret”。我有一个树莓派机器人,我经常进行“git push,用户名,密码”,而git告诉我在2021年8月之后需要使用令牌。我创建了开发者令牌,但需要告诉我的机器人上的git令牌是什么,并且让“git push”不要要求我输入凭据。 - Cyclical Obsessive
2
您可以使用 git config credential.helper store 命令来设置凭证助手。libsecret 凭证助手需要桌面环境,通常是 GNOME、MATE 或类似的环境,因此对于您来说,使用 store 可能更好。您也可以考虑使用带有部署密钥的 SSH。如果您不确定,请提出新问题,因为在评论中详细回答可能比较困难。 - bk2204

6

针对 Mac

  1. 打开钥匙串访问(Keychain Access)
  2. 选择登录(Login)

显示如何打开钥匙串访问

  1. 选择密码(Passwords),然后搜索 GitHub

显示如何搜索 GitHub 密码

  1. 双击 github.com

显示如何打开 GitHub 密码

  1. 勾选“显示密码”框

显示如何显示密码并输入访问令牌

  1. 用个人访问令牌替换密码

  2. 保存更改

  3. 现在尝试使用 git commit 或 git push,应该可以正常工作了!


3

只需使用您的远程名称进行推送

例如:git push origin master

您可以使用git remote -v检查当前的远程列表。

当您使用带有个人访问令牌的地址克隆时,它会被添加到此列表中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接