技術系

1つのPCで、複数のGithubアカウントを使い分ける

技術系

こんにちは、なかにしです。
久々の更新です。

フリーランスとして働き始めて約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つ作成(仕事用 / 趣味用)

ざっくりやり方解説

  1. 仕事用アカウントのキーペアを作成する
  2. 仕事用アカウントの公開鍵をGithubに登録する
  3. 趣味用アカウントのキーペアを作成する
  4. 趣味用アカウントの公開鍵をGithubに登録する
  5. PC内にconfigを作成する
  6. 使いたいアカウントでCloneする
  7. Cloneしたリポジトリ内で、Gitのアカウント情報を変更する
  8. add, commit, pushする

実際にやってみる

手順1-2: 仕事用アカウントのキーペア作成 / 登録

手順3-4: 趣味用用アカウントのキーペア作成 / 登録

手順5: PC内にconfigを作成する

手順6: 使いたいアカウントでCloneする

手順7: Cloneしたリポジトリ内で、Gitのアカウント情報を変更する

手順8: add, commit, pushする

手順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!

タイトルとURLをコピーしました