如何在一台电脑上管理/切换多个github账户
場景:比如個人person和公司work的多個github賬號,這個時候在本地做操作,是無法用work賬號操作person賬號下的git倉庫的。
當我用work提交屬于person的代碼的時候,會出現以下報錯,提示無權限。
$ git push origin masterERROR: Permission to person/git-start.git denied to work.
fatal: Could not read from remote repository.
使用git remote -v可查看當前倉庫的遠程git地址
$ git remote -vorigin git@github.com:person/git-start.git (fetch)
origin git@github.com:person/git-start.git (push)
那么,一臺電腦上如何管理多個github賬戶呢?
設置SSH密鑰
創建多個SSH密鑰,并保存在對應的文件中
cd ~/.sshssh-keygen -t rsa -C "work@163.com"
ssh-keygen -t rsa -C "person@163.com"
...
以上創建出id_rsa_work, id_rsa_work.pub和id_rsa_person, id_rsa_person.pub四份文件
將SSH密鑰添加到Github賬戶
將密鑰復制到剪切板
pbcopy < ~/.ssh/id_rsa_work.pub將生成的密鑰中的公鑰內容(即.pub文件)的內容添加到不同的github賬戶中,流程如下:
- 轉到github的帳戶設置
- 點擊“SSH密鑰”,然后“添加SSH密鑰”
- 將密鑰粘貼到“密鑰”字段并添加相關標題
- 點擊“添加密鑰”,然后輸入您的Github密碼進行確認
?
創建config配置文件來單獨管理密鑰
$ cd ~/.ssh/$ sudo vim config
編輯config文件
# work Host workHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_work# person Host personHostName github.comUser gitIdentityFile ~/.ssh/id_rsa_person添加新的密鑰
$ ssh-add id_rsa_work $ ssh-add id_rsa_person查看當前的密鑰列表,查看是否添加成功
$ ssh-add -l測試以確保Github識別密鑰:
$ ssh -T work Hi work! You've successfully authenticated, but GitHub does not provide shell access.$ ssh -T person Hi person! You've successfully authenticated, but GitHub does not provide shell access.試一下
在和遠程庫交互的時候,還有一點要注意,即git倉庫地址的更改。
首先,回到命令行上,創建一個測試目錄:
$ cd ~/documents $ mkdir git-start $ cd git-start使用work賬號,向Github添加一個空白的“readme.md”文件和PUSH:
$ touch readme.md $ git init $ git add . $ git commit -am "first commit" $ git remote add origin git@work:work/git-start.git $ git push origin master注意我們如何使用自定義帳戶git@work,而不是git@github.com!
對于git@work:work/git-start.git。第一個work是在config文件里創建的Host,第二個work為你github的用戶名。
再試一下person的PUSH和PULL操作,看是否成功
tips,更改遠程倉庫的命令
$ git remote set-url origin git@work:work/git-start.git總結,一臺計算機上管理多個github賬戶的核心就是
- ssh密鑰
- config文件配置
- git倉庫遠程地址的配置
總結
以上是生活随笔為你收集整理的如何在一台电脑上管理/切换多个github账户的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hihocoder 1638:多级并查集
- 下一篇: Python函数默认参数陷阱