こんにちは、なかにしです。
久々の更新です。
フリーランスとして働き始めて約1か月。
嬉しいことに、友人や元同僚からの紹介で、ITエンジニアやデザイナーとしての仕事をいくつかいただいています。
4年前に買ったノートPCをずっと使っていましたが、デザインのソフトはハイスペックなものが多く、そろそろこのノートPCで対応するのにも限界が来ています。
そこで、新しくミニデスクトップPCを購入しました。
モニターの後ろに取り付けができて、とても便利です。
フリーランスとしての案件は、支給ではなく自分のPCを使って開発をすることが多く、Githubアカウントを個人用と仕事用で分けたいなと思いました。
今回は、その記事になります。
やりたいこと
1つのPCの1つのアカウント内で、複数のGithubアカウントを使い分けたい。
例えば、仕事用は「Nakanishi-job」、個人用は「Nakanishi-hob」。
※注意※
Githubのアカウント規約に以下の記載があります。(ソースはこちら)
1 人の個人または 1 法人が維持できる無料アカウントは 1 つのみです (マシン アカウントを管理することを選択することもできますが、アカウントはマシンを実行するためにのみ使用できます)。
当記事は、有料アカウント1つ、無料アカウント1つを想定しています。
使用環境と事前準備
環境:Windows 11 Pro
事前準備:Githubアカウントを2つ作成(仕事用 / 趣味用)
ざっくりやり方解説
- 仕事用アカウントのキーペアを作成する
- 仕事用アカウントの公開鍵をGithubに登録する
- 趣味用アカウントのキーペアを作成する
- 趣味用アカウントの公開鍵をGithubに登録する
- PC内にconfigを作成する
- 使いたいアカウントでCloneする
- Cloneしたリポジトリ内で、Gitのアカウント情報を変更する
- add, commit, pushする
実際にやってみる
手順7: Cloneしたリポジトリ内で、Gitのアカウント情報を変更する
手順1~2
この手順は、Githubに公開鍵を登録するという「Github登録のいつもの手順」です。
しかし、キーペアをそのまま作成すると、
既存のキーペアが上書きされるので注意が必要です。
作成にあたって、別の名前を指定しましょう。
ますは、仕事用アカウントのキーペアを作成します。
ssh-keygen -t rsa -f [ファイルへのパスとファイル名]
今回は、.ssh/nakanishi-jobという名前で作成しました。
ファイルへのパスとファイル名は、Windows用です。
その他のOSの方は、読み替えてください。
ssh-keygen -t rsa -f C:\Users\hiro\.ssh\sample-1
キーペアが作成できました。

▽ プライベートキーとパブリックキーができるので、パブリックキー(.pub)をGithubの仕事用アカウントに登録します。

手順3~4
基本的には、手順1~2と同じです。
趣味用なので、.ssh/nakanishi-hobという名前でキーペアを作成します。

▽ キーペアができました。今度は、Githubの趣味用アカウントにパブリックキー(.pub)を登録します。

手順5
作成したキーペアと同じ場所に、configというファイルを作成します。
ここで、キーの情報をまとめます。

▽ configの中身
Host github.com.job # 仕事用アカウント
HostName github.com
User git
IdentityFile ~/.ssh/nakanishi-job # 仕事用アカウントのプライベートキーの場所
IdentitiesOnly yes
Host github.com.hob # 趣味用アカウント
HostName github.com
User git
IdentityFile ~/.ssh/nakanishi-hob # 趣味用アカウントのプライベートキーの場所
IdentitiesOnly yes
後で見てわかるように、コメントを残すようにしましょう。
手順6
仕事用アカウントのGitリポジトリを、趣味用のアカウントで操作しようとしても、エラーになります。
仕事用Githubは仕事用のキーで、趣味用Githubは趣味用のキーで操作します。
例えば、「react-practice」というリポジトリを、趣味用アカウントでcloneする場合、普通のcloneは以下のように書きます。
git clone git@github.com:Naka-nishi-s/react-practice.git
しかし、これだと一般ユーザと変わりがありません。
Githubに登録しているキーの持ち主であることを証明するため、以下のようにcloneします。
git clone git@github.com.hob:Naka-nishi-s/react-practice.git
「git@github.com.hob」は、configで「~/.ssh/nakanishi-hob」というキーを使うように指定してあるので、これで持ち主の証明ができます。
手順7
デフォルトのユーザーが設定されている場合、このまま commit や push をすると、デフォルトユーザー扱いになります。
clone した Gitリポジトリ を、ターミナルやコマンドプロンプトで開き、以下を入力します。
git config user.email
ここで、趣味用アカウントの email が返ってきた場合は、問題ありません。
しかし、別の email が返ってきた場合は、デフォルトのユーザーのままになっています。
そのまま commit や push をすると、デフォルトユーザーの名前や email で操作した扱いになります。
そこで、以下コマンドでユーザーの変更を行います。
コマンドを打つ場所は、リポジトリ内の「.gitフォルダ」が存在する場所にしてください。
git config --local user.email [趣味用GithubアカウントのEmail]
▽ 例(趣味用Githubアカウントの email が、sample@gmail.com の場合)
git config --local user.email sample@gmail.com
これは、このリポジトリ内でこの email のアカウントを使ってくださいね、という意味です。
上記のコマンド実行後、もう一度、以下コマンドを打ってみます。
git config user.email
すると、返却される email が変わったと思います。
これで、設定完了です。
ちなみに、「どのユーザーでgit操作をするか」は、リポジトリ内の .gitフォルダ の config に記載があります。
現在は、以下の記載があると思います。
[user]
email = sample@gmail.com
この記載を消し、もう一度以下のコマンドを打ってみてください。
git config user.email
すると、ユーザーがデフォルトに戻ったかと思います。
再度、設定しましょう。
git config --local user.email sample@gmail.com
すると、自動的に .git/config に、以下が記載されます。
[user]
email = sample@gmail.com
もちろん、手動でこの.git/configにユーザーを記載しても問題ありません。
手順8
ユーザーのemailが変わったら、あとは add / commit / pushをすれば、趣味用アカウントのまま操作ができます。権限周りでひっかかることもありません。
さいごに
ちょっと手間がかかって面倒ですが、
そもそも仕事用と趣味用でPCを2台用意しろよってことでご勘弁を。
今回はここまで!
Enjoy Hacking!