我正在使用 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_username
并your_project
应替换为相应的存储库名称和该存储库的所有者。如果您拥有该存储库,则用户名将属于您,否则,用户名将属于存储库所有者。
答案3
如果您使用的是 HTTPS 而不是 SSH,您可以按照以下步骤操作:
使用以下方式查找远程 URL (remote.origin.url)
git config -l
感谢 Sergio Morstabilini
你的远程 URL 将会像这样:https://{用户名}@github.com/{用户名}/{源名称}.git
执行此命令:
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 密码。