WSL上で2人のユーザーになりきってプルリクエストの練習
[質問]
WSLに2つのアカウントをつくり、それぞれが別個にGitHubアカウントを取得した環境を作ります。一人目がGitHubにpull requestを送ったり二人目がそれを解決する勉強がしてみたいです。どんな順番で学習を進めればいいか、アドバイスをください。
[回答] Gemini
WSL上で2人のユーザーになりきってプルリクエスト(PR)のフローを練習するのは、Gitの仕組みを理解する上で非常に素晴らしいアイデアですね!
1台のPCで完結させるため、「アカウントの切り替え」と「権限設定」が鍵になります。以下のステップで進めるのがスムーズです。
ステップ1:WSL内に2つのユーザーを作成する
まずは「自分」と「練習用の相手」の2つのユーザーをWSL上に作ります。
- ユーザー追加:
sudo adduser user2で新しいユーザーを作成します。 - 切り替え確認:
su - user2でユーザーを切り替えられるか確認しましょう。 whoamiコマンドで今どっちのユーザーか確認する癖をつけると混乱を防げます。
ステップ2:GitHubアカウントとSSH鍵の準備
ここが一番の山場です。GitHubは「誰がアクセスしているか」をSSH鍵で判断します。
- 2つのGitHubアカウント: 異なるメールアドレスでGitHubアカウントを2つ用意します。
- SSH鍵の生成: * User1のホームディレクトリで鍵を作り、GitHub1に登録。
- User2のホームディレクトリで鍵を作り、GitHub2に登録。
注意点: WSLのユーザーを切り替えれば、それぞれの
~/.ssh/フォルダは独立しているため、鍵が混ざる心配はありません。
ステップ3:リポジトリの準備(一人目の作業)
いよいよGit操作に入ります。
- User1: GitHub上に「練習用リポジトリ」を作成(Public)。
- User1: ローカルに
git cloneして、適当なファイルを作ってpushします。
ステップ4:Fork と Pull Request(二人目の作業)
ここから「共同作業」のシミュレーションです。
- User2: GitHub上で User1のリポジトリにアクセスし、「Fork」ボタンを押します。これで User2側の管理下にコピーが作られます。
- User2 (WSL): Forkした自分のリポジトリを
git cloneします。 - User2 (WSL): コードを修正し、
commitしてpushします。 - User2 (GitHub): ブラウザから 「New Pull Request」 を作成し、User1に送ります。
ステップ5:レビューとマージ(一人目の作業)
最後は受け入れ作業です。
- User1 (GitHub): 届いたPRを確認します。「Files changed」で修正箇所を見て、コメントを返したりします。
- User1 (GitHub): 問題なければ 「Merge pull request」 をクリック!
- User1 (WSL):
git pull origin mainを実行して、User2が直したコードが自分の手元にも反映される感動を味わいましょう。
学習をスムーズにするコツ
- ブラウザのプロファイル機能: ChromeやEdgeの「プロファイル(ユーザー)」を2つ分けると、GitHubのログアウト・再ログインの手間が省けて劇的に楽になります。
- configの設定: 各ユーザーのWSL内で必ず以下を設定してください。
これを忘れると、コミットログのアイコンが別人になってしまいます。
まずはステップ1の「ユーザー追加」と、ステップ2の「SSH接続の確立」から始めてみませんか?もしSSH鍵の設定で詰まったら、いつでも聞いてくださいね。