我从GitHub账户将Git仓库克隆到了PC上。
我想要使用同一个GitHub账户在PC和笔记本电脑上进行操作。
当我尝试使用PC推送或拉取GitHub时,需要输入用户名和密码,但是使用笔记本电脑则不需要!
我不想每次与origin
交互时都输入用户名和密码。我错过了什么?
我从GitHub账户将Git仓库克隆到了PC上。
我想要使用同一个GitHub账户在PC和笔记本电脑上进行操作。
当我尝试使用PC推送或拉取GitHub时,需要输入用户名和密码,但是使用笔记本电脑则不需要!
我不想每次与origin
交互时都输入用户名和密码。我错过了什么?
这里有另一个选择:
不要写成:
git push origin HEAD
您可以写成:
git push https://user:pass@yourrepo.com/path HEAD
显然,对于大多数shell来说,这将导致密码被缓存在历史记录中,所以请记住这一点。
对我有效的方法是编辑.git/config
文件并使用。
[remote "origin"]
url = https://<login>:<password>@gitlab.com(...).git
不言而喻,这是一种不安全的存储密码的方式,但在某些环境/情况下可能不会成为问题。
设置
-> 开发者设置
-> 个人访问令牌
(https://github.com/settings/tokens/new),并生成一个具有所有 Repo 权限的新令牌。github.com
-> 点击 显示密码
,然后粘贴你刚刚复制的 令牌
。github.com
,那没关系,只需执行第三步,然后它就会显示在钥匙串访问中。 - Deqing如果SSH密钥或.netrc
文件对您无效,那么另一个简单但不太安全的解决方案是git-credential-store - 用于在磁盘上存储凭据的助手:
git config --global credential.helper store
默认情况下,凭据将保存在文件~/.git-credentials
中。它将被创建并写入。
请注意,使用此帮助程序将会将您的密码以未加密的方式存储在磁盘上,仅受文件系统权限保护。如果这可能不是可以接受的安全权衡,请注意。
我曾经遇到同样的问题。
所以我修改了我的项目中.git/config
文件,
url = https://github.com/<your-user-here>/<your-repo-here>
to
url = git@github.com:<your-user-here>/<your-repo-here>
我已经将SSH公钥添加到了Git配置文件中的设置中。
关于SSH公钥:
cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub
命令获取 RSA 密钥,并将其粘贴到 Git 网站设置中。 - Anupam Maurya如果你使用HTTPS克隆而不是SSH,在pull、push和fetch时面临用户名和密码提示问题。你可以简单地解决Ubuntu上的这个问题。
步骤1: 移动到根目录
cd ~/
创建一个文件.git-credentials
将以下内容添加到该文件中,包括你的 用户名
、密码
和 git托管URL
。
https://user:pass@example.com
git config --global credential.helper store
现在您将能够轻松地从您的存储库中拉取、推送和获取所有细节,无需任何麻烦。
githosting URL
是什么?例如,对于 Gitlab
,它是什么? - étale-cohomology直接更新 Git 配置文件(如果您不想记忆复杂命令):
使用您喜欢的文本编辑器打开 .git/config
文件。该文件将位于您克隆或执行 git init
的仓库中。进入该仓库,.git
是一个隐藏的文件夹,按下 Ctrl + H 可以显示隐藏文件夹(在终端中使用 ls -a
命令)。
下面是一个 .git/config
文件示例。请复制并粘贴这些行,并确保使用您的 Git 信息更新这些行。
[user]
name = Tux
email = tux@gmail.com
username = happy_feet
[remote "origin"]
url = https://github.com/happy_feet/my_code.git
fetch = +refs/heads/*:refs/remotes/origin/*
将URL的部分更改为以下格式以进行SSH:
url = git@github.com:happy_feet/my_code.git
(上述格式不会因为使用不同的Git远程服务器(如GitHub或Bitbucket)而改变。如果您正在使用Git进行版本控制,那么这是相同的):
注意: 通过SSH连接到远程Git存储库将要求您将公共SSH密钥添加到您的Git远程服务器中(如GitHub或Bitbucket。在设置页面中搜索SSH密钥)。
要了解如何生成您的SSH密钥,请参考: 创建SSH密钥
对于Windows Git用户,在运行 git config --global credential.helper store
命令后,如果仍然提示输入密码,建议检查配置文件写入的位置,可以使用以下命令:
git config --list --show-origin
[credential]
helper = store
你基本上有两个选择。
如果您在两台机器上使用相同的用户,则需要将.pub密钥复制到您的PC上,以便GitHub知道您是同一用户。
如果您为PC创建了一个新的.pub文件并希望将这些机器视为不同的用户,则需要在GitHub网站上注册新的.pub文件。
如果仍然无法正常工作,则可能是因为ssh未正确配置,ssh无法找到密钥的位置。尝试:
ssh -vv username@github.com
获取更多关于SSH连接失败的信息。
git remote set-url origin https://username@github.com/username/reponame.git
例子:
git remote set-url origin https://jsmith@github.com/jsmith/master.git