ガレージ暮らしのトライタム

プログラムやツールの解説や技術を公開する場所

複数のgithubアカウントを使ってssh使用しつつブランチ管理する

この記事について

1つのPCに複数Githubアカウントを管理しています。
が、リポジトリごとにSSHでclone/pushした時に少し詰まったので、その備忘録です。

概要

sshKeyを複数作成した状態でconfigを作ります。(ssh -Tによる疎通確認も任意で行う)
sshKeyの公開鍵をgithubに各々登録します。
そしてremote setで@マーク以降をconfigに設定したHost名にして設定すればOKです。
pullしてrepository not found言われなければ完了です。

最後にcommitする前にconfig user.name / config user.emailでコミット者を設定してください。

詳細

config

.ssh以下に存在しているconfigファイルで以下のように設定されているとします

configホスト名例
Host github-work
・・・

Host github-private
・・・

remoteをset(もしくはadd)する

対象リポジトリをinit / cloneします。 このタイミングでconfigに設定されたHost名を書けばOKです。

github-workというHostで使用したい場合
git remote add origin git@github-work:aaa/bbb.git
もしくは
git remote set-url origin git@github-work:aaa/bbb.git
github-privateというHostで使用したい場合
git remote add origin git@github-private:aaa/bbb.git
もしくは
git remote set-url origin git@github-private:aaa/bbb.git

これでconfigに設定された鍵でpull/pushが行えるようになります。

commit者を指定する

git globalで設定してあるアカウントでコミットする場合はこの処理は不要です。

globalで指定していないアカウントでコミットしたい場合は以下のコマンドを対象のリポジトリに記入します。

$ git config user.name "使用したいアカウント名"
$ git config user.email "使用したいアカウントユーザーネーム"

これで指定したアカウントでコミットができるはずです。

それではみなさん、楽しい創作ライフを!

参考文献(最終閲覧日:2019/10/06)

GitHubで仕事用とプライベート用のアカウントを切り替えて使う | Black Everyday Company
SSH Keyを作成してGitHubなどに接続してみる - Qiita
gitの基本(init~push)+@ - Qiita
githubから httpsでcloneしてしまったリポジトリの originを sshに変更する - ブログ - ワルブリックス株式会社