我刚刚从我的磁盘中丢失了一堆存储库,所以我从 GitHub 克隆了它们。现在每次我向 GitHub 推送内容时,它们都会要求输入用户名和密码。那些没有被删除的不会这样做。
我为摆脱用户名/密码提示而阅读的唯一解决方案是生成 ssh 密钥。问题是我已经有了一个密钥,否则我无法在没有克隆的那些存储库中没有提示的情况下推送。
我查看git config了我的两个存储库,一个无需密码即可推送,另一个是我克隆的。唯一的区别是branch.master.remote和branch.master.merge设置,我取消设置,使git config相同。但是提示还在。
我什至不确定生成新的 ssh 密钥是否有效。我有哪些选择?
use*_*686 21
我猜:
您的旧存储库使用 SSH 远程(git@github.com:或ssh://git@github.com/前缀),它使用公钥身份验证。(事实上,Github SSH 服务器从不要求输入密码。)
您的新存储库使用 HTTP 远程 ( ),它仅支持基于密码的HTTP 基本身份验证,不使用您的 SSH 密钥。https://username@github.com/
更改远程 URL 以再次使用 SSH。使用git remote set-url或编辑.git/config来做到这一点。代替
https://用户名@github.com/用户名/repo.git
只是
git@github.com:用户名/repo.git
你甚至可以在你的条目中~/.gitconfig告诉 git 将远程 URL 从 HTTP 或 Git 转换为 SSH。
这样,如果您的存储库配置为 HTTP 或 Git 远程,git 将在推送时忽略该设置,而是使用 SSH。
[url "git@github.com:"]
pushInsteadOf = git://github.com/
pushInsteadOf = https://github.com/
Run Code Online (Sandbox Code Playgroud)
(insteadOf =也可以进行设置,以覆盖拉动和推动。)
| 归档时间: |
|
| 查看次数: |
12603 次 |
| 最近记录: |