我如何确保 Git 不会要求我输入我的 GitHub 用户名和密码?

我如何确保 Git 不会要求我输入我的 GitHub 用户名和密码?

我正在使用 GitHub 上的一个仓库,每次我尝试推送某些内容时,它都会要求我输入 GitHub 用户名和密码。我不希望它这样做。

我尝试了在 Git 中设置电子邮件,即设置了Git变量github.user和github.token,但是这并没有什么区别。

我不明白为什么会发生这种事。

答案1

您需要设置一个 ssh 代理,您只需对其进行一次身份验证。请参阅这个答案在 SO 上查看操作方法。

答案2

今天遇到了类似的问题:我把工作副本弄乱了,所以我决定重命名目录并再次从 github 克隆我的项目。但这样做之后,我必须输入密码才能执行任何拉/推请求,而不是像以前一样只需输入一次密码。

这是因为今天我使用了 https 协议来克隆项目!要检查你正在使用的协议,只需运行

git config -l

并查看以“remote.origin.url”开头的行。

要切换协议:

git config remote.origin.url [email protected]:the_repository_username/your_project.git

the_repository_usernameyour_project应替换为相应的存储库名称和该存储库的所有者。如果您拥有该存储库,则用户名将属于您,否则,用户名将属于存储库所有者。

答案3

如果您使用的是 HTTPS 而不是 SSH,您可以按照以下步骤操作:

  1. 使用以下方式查找远程 URL (remote.origin.url)

    git config -l
    

    感谢 Sergio Morstabilini

  2. 你的远程 URL 将会像这样:https://{用户名}@github.com/{用户名}/{源名称}.git

  3. 执行此命令:

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

答案4

此外,如果您希望每次都提示输入密码,但不输入用户名,那么您可以将远程配置为带有用户名的 HTTPS。就像这样。

git config remote.origin.url https://[email protected]/repo_owner/repo_name

此后,每次都会提示您输入密码,但不会提示您的用户名。

我喜欢这种方式,因为我喜欢在与世界分享之前被迫输入我的 github 密码。

相关内容