我已经按照这些说明设置了github的SSH密钥。 但是现在当我执行操作时
> git pull
Username for 'https://github.com':
在本地计算机的存储库中,我已经获取了公用SSH密钥,但是仍然要求输入用户名和密码。 我错过了什么步骤吗?您需要告诉Git使用SSH协议而不是HTTPS。在GitHub上的存储库页面上,选择Clone or Download
和Use SSH
。您将获得一个类似git@github.com:<user>/<repo>.git
的SSH协议URL。
然后在您的工作目录中运行以下命令,以告诉Git使用此URL而不是当前的URL:
```bash git remote set-url origin git@github.com:/.git ```git remote set-url origin git@github.com:<user>/<repo>.git
这也在GitHub帮助文档中有解释。
以上方法不会导致仓库被再次克隆,只是改变了本地仓库和GitHub之间未来同步所使用的通信协议。
或者,您可以使用git remote add <new-remote-name> <url>
设置一个新的远程,然后使用git pull <new-remote-name>
,但Git会将两种协议作为独立的远程进行跟踪,因此我不建议这样做。
git remote add
设置一个新的远程,然后使用 git pull <new-remote-name>
。 - Melebius您也可以通过编辑项目的 git 配置文件来完成此操作。请使用您最喜欢的编辑器打开 .git/config
文件,并查找现有的 URL:
[remote "origin"]
url=https://github.com/<usr>/<repo>.git
改为:
[remote "origin"]
url=git@github.com:<usr>/<repo>.git
个人而言,我觉得这样更容易记住,尽管有点过于“内部化”。
在我的情况下,我在 GitHub 上创建了自己的存储库,并想从本地计算机将文件推送到该存储库。当我想要推送代码时,尽管我已经配置了具有公共 SSH 密钥的 GitHub 帐户,但被要求输入用户名和密码。
我的错误在于使用以下 https
端点添加了远程而不是 ssh
端点:
git remote add origin https://github.com/vagdevik/dummy.git
我通过以下方式解决了这个问题:
(接下来的步骤很重要,因为如果我们直接跳转到第2步,会提示远程已经存在的错误)
.git
并重新初始化追踪:rm -rf .git
重新初始化 git 追踪,添加要跟踪的文件并提交:
git init
git add .
git commit -m "first commit"
注意:我之前对这个repo没有做任何提交,所以删除.git
不会有影响。如果你不想失去对repo所做的更改,请按照此处的步骤操作。
https
链接(重要)git remote add origin git@github.com:vagdevik/dummy.git
这一次,我没有被要求输入用户名和密码。
谢谢!
git remote -v
命令,确认您是否真的在使用 SSH 协议。 - Melebius