一つのデバイスで複数のGitアカウントを管理する
Jul 20, 2018 09:40 · 88 words · 1 minute read
一つのデバイスで複数の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]