🊟

💻 GitHubアカりントを2぀䜜っおWindowsずWSLで快適に䜿い分ける蚭定 🐧

に公開

はじめに

開発甚にGitHubアカりントを2぀䟋プラむベヌト甚ず仕事甚持ちたいこずっおありたすよね。🙋‍♀

ただ、1台のPCWindows + WSL䜵甚で耇数アカりントを䜿い分けるには、ちょっずした工倫が必芁です。この蚘事では「Windows環境」「WSL環境」䞡方で、耇数のGitHubアカりントを安党か぀自動で䜿い分ける蚭定方法をたずめたす。✍

実際にやった手順をベヌスに、アカりント名やメヌルはすべおマスキングしおいたす。

🎯 この蚘事のゎヌル

  • アカりントA ず アカりントB をしっかり䜿い分けられるようになる
  • Windows / WSL の䞡方で同じルヌルで動䜜させる
  • 「このフォルダ配䞋はアカりントA」「こっちのフォルダ配䞋はアカりントB」ず自動で切り替わるようにする
  • git push 時にアカりントが混線しないようにする

Step 1. 🔑 SSH鍵の準備ず゚むリアス蚭定

たず、アカりントごずに別々のSSH鍵を䜜成したす。

䟋

  • アカりントA → ~/.ssh/id_rsa_accountA
  • アカりントB → ~/.ssh/id_rsa_accountB

次に ~/.ssh/config に、どちらの鍵を䜿うかを指定する゚むリアスあだ名のようなものを定矩したす。

~/.ssh/config
# 👀 アカりントA甹
Host github-a
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_accountA
  IdentitiesOnly yes

# 🏢 アカりントB甹
Host github-b
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_accountB
  IdentitiesOnly yes

これで準備OKですちゃんず接続できるか確認しおみたしょう。✅

# アカりントAずしお接続テスト
ssh -T git@github-a
# → Hi A! You've successfully authenticated... ず衚瀺されれば成功

# アカりントBずしお接続テスト
ssh -T git@github-b
# → Hi B! You've successfully authenticated... ず衚瀺されれば成功

Step 2. 📝 Gitのコミット名矩を切り分ける (WSLç·š)

次に、コミット時に蚘録される名前ずメヌルアドレスをアカりントごずに切り替えたす。

👀 グロヌバル蚭定デフォルトアカりントA

たずは、どのプロゞェクトでもない堎所で䜿われる、基本のアカりントを蚭定したす。~/.gitconfig ファむルを線集したす。

~/.gitconfig
[user]
  name = ACCOUNT_A
  email = accountA@example.com

🔀 includeIfで条件分岐アカりントB甚

ここがキモです特定のディレクトリ以䞋の堎合だけ、蚭定を䞊曞きするようにしたす。~/.gitconfig に以䞋の蚭定を远蚘したす。

~/.gitconfig
[includeIf "gitdir:/home/username/accountB/"]
  path = ~/.gitconfig-accountB

そしお、䞊曞き甚の蚭定ファむル ~/.gitconfig-accountB を新しく䜜りたす。

~/.gitconfig-accountB
[user]
  name = ACCOUNT_B
  email = 123456+ACCOUNTB@users.noreply.github.com

👉 これで /home/username/accountB/ 配䞋にあるプロゞェクトは、自動でアカりントBの名矩に切り替わりたす ずおも䟿利

Step 3. 🖥 Windows偎でも同じ蚭定をする

WSLだけでなく、Windows偎のGitでも同じ蚭定をしおおきたしょう。これで混乱がなくなりたす。

Windowsでは .gitconfig は C:\Users\<Windowsナヌザヌ名>\.gitconfig にありたす。WSLず同じように蚭定しおいきたしょう。

👀 グロヌバル蚭定デフォルトアカりントA

C
[user]
  name = ACCOUNT_A
  email = accountA@example.com

🔀 includeIfで条件分岐を远加

C
[includeIf "gitdir:C:/Users/<Windowsナヌザヌ名>/accountB/"]
  path = ./.gitconfig-accountB

※ pathは.gitconfigからの盞察パスでもOKです。

そしお、䞊曞き甚の .gitconfig-accountB を .gitconfig ず同じ堎所に䜜りたす。

C
[user]
  name = ACCOUNT_B
  email = 123456+ACCOUNTB@users.noreply.github.com

👉 これでWindowsでも C:\Users\xxx\accountB\ 配䞋に git clone や git init すれば、自動でアカりントBに切り替わりたす

Step 4. 📁 プロゞェクトの䜿い分けルヌル

これで、フォルダの堎所によっおアカりントを意識せずに䜿い分けられるようになりたした

👀 アカりントAを䜿いたいずき

  • フォルダ (WSL): /home/username/Documents/ など
  • フォルダ (Windows): C:\Users\xxx\Documents\ など
  • リモヌトURL: git@github-a:ACCOUNT_A/repo.git

🏢 アカりントBを䜿いたいずき

  • フォルダ (WSL): /home/username/accountB/
  • フォルダ (Windows): C:\Users\xxx\accountB\
  • リモヌトURL: git@github-b:ACCOUNT_B/repo.git

git clone する時に、github.com の郚分を ~/.ssh/config で蚭定したホスト名github-a or github-bに曞き換えるのがポむントです

Step 5. 🀔 迷ったずきの「3点チェックリスト」

「あれ今どっちのアカりントで䜜業しおるんだっけ」ず䞍安になったずきは、この3぀を確認すれば安心です。😌

1. コミット名矩の確認 👀

git config user.email

→ 意図したアカりントのメヌルアドレスが衚瀺されるかチェック

2. リモヌトURLの確認 🔗

git remote -v

→ origin git@github-a:... たたは origin git@github-b:... のように、蚭定したホスト名になっおいるかチェック

3. SSH認蚌の確認 🔑

# アカりントAの疎通確認
ssh -T git@github-a

# アカりントBの疎通確認
ssh -T git@github-b

→ それぞれのアカりント名で successfully authenticated ず衚瀺されるかチェック

🎉 たずめ

これで、1台のPCで耇数のGitHubアカりントを安党・快適に䜿い分けられるようになりたした

  • 🔑 SSH鍵をアカりントごずに分ける
  • ⚙ ~/.ssh/config でホストの゚むリアスを蚭定する
  • 📁 includeIf を䜿っお、特定フォルダ配䞋のプロゞェクトは別アカりントに自動切替
  • 💻 Windows ず WSL 䞡方で同じ蚭定を入れお混線を防ぐ
  • 🀔 䞍安なずきは「3点チェック」で確認

快適なGitラむフをお過ごしください ✹

Discussion