2016-01-11 25 views
0

我打开了一个新的GitHub账户来分隔我的商业和个人回购。从多个账户的命令行登录github

现在,我git init我的本地回购和git add remote origin <the repo https url>

我试图把它似乎总是拿我原来的帐户的凭据,没有提示我要为新帐户的凭据。

我尝试使用URL格式

https://<username>:<password>@github.com/<username>/<repo.git> 

,但似乎并没有帮助:我还得到一个错误的凭据是原始帐户的用户名无效。

如何使用多组凭证登录,或者如何以某种方式重置原始凭据以在推送时强制密码提示?

编辑

我设法现在推的唯一方法是通过在git push command

+1

作为一种替代方案,您可以使用ssh密钥来有效地使用相同的远程服务器,但对于不同的用户(例如, (服务器/个人服务器/ biz将解析为相同的URL,但使用不同的帐户);看到答案[这里](http://stackoverflow.com/a/10904314/288545) –

+1

是的,我知道我可以做到这一点。特别是对于子模块等,它并不那么方便,因为其他人可能不会使用相同的主机名格式。repo中的子模块需要submodule repo的url。如果我在ssh_config中将其设置为我的主机名,其他人将获得该信息,并且除非以同样的方式设置自己的ssh_config,否则将无法拉取。只是一个痛苦。 – MrE

回答

0

我设法推的唯一途径是通过在混帐推命令

1

在URL中指定username:[email protected]/您可以使用您所使用的回购内部的混帐配置。在$ {local_repo_folder}/.git/config中,在那里添加您的用户详细信息。这样你就可以配置每个回购级别使用哪个用户。

+0

我尝试添加'user.username'和'user.password'到git config: 首先它没有帮助,第二我不喜欢在容易读取的文件中有这个信息。但如果你知道一种方法可行,那么我很乐意检查一下。 – MrE

2
git config --global credential.helper cache 

...它告诉git保持密码缓存在内存中(默认情况下)15分钟。您可以set a longer timeout有:

git config --global credential.helper "cache --timeout=3600" 

更多有用的链接:

https://confluence.atlassian.com/bitbucketserver/permanently-authenticating-with-git-repositories-776639846.html

使用.netrc文件 的.netrc文件是一种机制,允许您指定要使用的凭证哪个服务器。

此方法允许您避免在每次从Git推入或从Git中拉出时输入用户名和密码,但是您的Git密码以纯文本形式存储。


您可以使用下面的命令

git config credential.helper store 
git push http://example.com/repo.git 
# Now type username and password and it should be saved by git. 
+0

我确实评论过这对我不方便。我想知道如何重置或强制密码提示。 – MrE

+0

好吧,你可以保存凭据在git配置如果你的意思。 – CodeWizard

+0

https://help.github.com/articles/caching-your-github-password-in-git/ – CodeWizard

0

在URL中使用指定username:[email protected]/存储您的凭据此命令用github中的不同帐户重新登录

git remote set-url origin "remote repository URL"