Git push询问用户名和密码
我最近在我的家庭系统上设置了一个项目,但我已经在Github * 上创建了repo(不要问我为什么,我只是在学习)。* 我运行了git init,将文件添加到staging area,并提交了我添加到项目中的新镜像文件夹,但是当我尝试运行git push -u origin main时。当我没有设置密码时,系统要求我输入用户名和密码。经过一番研究,我发现我运行了git git remote add origin https://github.com/test/test.git,这就是为什么我被要求输入密码和用户名。
我通过运行git remote set-url origin www. example修复了这个问题 www.example.com :test/test.git,它允许我推送更改。我想知道的是为什么会发生这种情况,在这种情况下,HTTPS方法的目的是什么?
3条答案
按热度按时间tvz2xvvm1#
在这种情况下,http指的是使用用户名和密码的身份验证方法,而不是如何提供资产,通常不推荐使用,除非您真的需要使用它(for more, see the deprecation notice和HTTPS authentication docs)。
如果你花一点时间来设置SSH身份验证会容易得多(看起来你确实做了)-这并不意味着你的图像(或其他东西)将通过不同的协议提供给最终用户,这就是你如何向GitHub进行身份验证以使用你的存储库。
xe55xuns2#
HTTPS克隆使用凭据(电子邮件+密码/个人访问令牌)进行授权。SSH使用您的SSH密钥,该密钥可能已经在您的
~/.ssh
中生成并添加到您的GitHub帐户中,因此无需您输入即可授权。What is the best way to use Git, with HTTPS or with SSH?
nuypyhwy3#
基本上,当你通过URL HTTPS与github服务器交互时,git使用HTTP方法与服务器通信,但HTTP是不安全的,所以git需要你的凭证来验证远程服务器的用户,然后才能做任何事情。但是这种身份验证方法在一段时间前就被弃用了,正如第一条评论所说,使用SSH进行身份验证是一个更好的选择,因为这提高了发送到远程的数据的安全性和集成性。
你可以在这里阅读更多https://docs.github.com/en/get-started/getting-started-with-git/why-is-git-always-asking-for-my-password