如何在一臺電腦上管理/切換多個github帳戶

場景:好比我的person和公司work的多個github帳號,這個時候在本地作操做,是沒法用work帳號操做person帳號下的git倉庫的。git

當我用work提交屬於person的代碼的時候,會出現如下報錯,提示無權限。github

$ git push origin master
ERROR: Permission to person/git-start.git denied to work.
fatal: Could not read from remote repository.

使用git remote -v可查看當前倉庫的遠程git地址shell

$ git remote -v
origin git@github.com:person/git-start.git (fetch)
origin git@github.com:person/git-start.git (push)

那麼,一臺電腦上如何管理多個github帳戶呢?vim

設置SSH密鑰

建立多個SSH密鑰,並保存在對應的文件中ssh

cd ~/.ssh

ssh-keygen -t rsa -C "work@163.com"ide

ssh-keygen -t rsa -C "person@163.com"測試

...fetch

以上建立出id_rsa_work, id_rsa_work.pub和id_rsa_person, id_rsa_person.pub四份文件加密

將SSH密鑰添加到Github帳戶

將密鑰複製到剪切板url

pbcopy < ~/.ssh/id_rsa_work.pub

將生成的密鑰中的公鑰內容(即.pub文件)的內容添加到不一樣的github帳戶中,流程以下:

  • 轉到github的賬戶設置
  • 點擊「SSH密鑰」,而後「添加SSH密鑰」
  • 將密鑰粘貼到「密鑰」字段並添加相關標題
  • 點擊「添加密鑰」,而後輸入您的Github密碼進行確認

建立config配置文件來單獨管理密鑰

$ cd ~/.ssh/

$ sudo vim config

編輯config文件

# work
Host work
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_work

# person
Host person
   HostName github.com
   User git
   IdentityFile ~/.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倉庫遠程地址的配置
相關文章
相關標籤/搜索