2016-01-11 51 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"