一つのデバイスで複数のGitアカウントを管理する

Jul 20, 2018 09:40 · 88 words · 1 minute read TEC GIT

一つのデバイスで複数のGitHubアカウントを管理したい時の方法をまとめてみました。
利用が想定されるケースは少ないかもしれませんが、私は必要に迫られたので今後のためにまとめておきます。

誰かのお役に立てれば幸いです。

前提条件

サブアカウントとして扱いたいGitHubユーザーのSSH Key(ここではsub_id_rsa)は用意済みでありGitHub側で設定済みとします。

configにサブアカウント用の設定を追加 ~/.ssh/config

configにgithub-subの設定を用意します。 この時に「IdentityFile」にはサブアカウントとして管理したいGitHubアカウント用のSSH Keyを指定します。

# こちらは通常用 概ねこんな感じになっているはず 
Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_rsa # mainアカウント用のSSH Key
  User git

# 以下を今回追加
Host github-sub
  HostName github.com
  IdentityFile ~/.ssh/sub_id_rsa # subアカウント用のSSH Key
  User git

clone

HostNameのところをsubの変更して行います。

git clone @github-sub:XXXX/xxxx.git:

もし cloneで怒られたらこれ

git remote rm origin

submoduleの場合

同じくHostNameのところをsubの変更して行います。 以下はあるリポジトリをsubと言う弟子ディレクトリに紐付けています。

git submodule add -b master git@github-sub:XXXX/xxxx.git sub

config –localでサブアカウント用の設定を行う

config localでサブアカウントの名前とemailを設定しておきます。
この設定が無いとglobalで設定されたuserで反映されてしまいます。

git config --local user.name [SubのGitHubアカウントの名前]
git config --local user.email [SubのGitHubアカウントのemail]

※submoduleの内容を更新する場合はその紐付けたディレクトリ(この例ではsub)でも上記を実行する必要がある

cd sub
git config --local user.name [SubのGitHubアカウントの名前]
git config --local user.email [SubのGitHubアカウントのemail]
tweet Share