Motivation
お仕事でGitHub Enterpriseで作成されたアカウントを使うことになりました。一方でもちろんGitHubの個人アカウントを持っています。一つの端末でこれら二つを併用したい場合の環境構築で時間を費やしたので、ドキュメンテーションします。
前提
- GitHubの個人アカウントを持っている
- GitHub Enterpriseのアカウントを持っている
- GitHub EnterpriseがGitHubにホストされている
- ローカルでGitを使っている
環境構築の順序のまとめ
- GitHubの個人アカウント用のSSHキーを作成する
- GitHubの個人アカウントでSSHキーを登録する
- ssh config に、個人アカウントにSSHでアクセスするときの設定を書く
- GitHubの個人アカウントでアクセストークンを払い出す
- Git のオリジンを 3 で設定したHostを使うように設定する
- GitHubの個人アカウントに属しているリポジトリでは、個人アカウントで払い出したアクセストークンを使用する
- 1~6までをGitHub Enterpriseで繰り返す
GitHubの個人アカウント用のSSHキーを作成する
SSHキーをローカルで作成してください。こちらにGitHub公式のドキュメントがあります。
GitHubの個人アカウントでSSHキーを登録する
GitHubにサインインした状態で設定ページにある、SSH and GPG keys
というセクションをクリックしてください。New SSH key
をクリックすると登録画面が表示されます。タイトルは任意です。この作業もこちらにGitHubの公式のドキュメントがあります。
ssh configに、個人アカウントにSSHでアクセスするときの設定を書く
~/.ssh/config
に個人アカウントにSSHでアクセスするときの設定を書きます。
Host personalgit
HostName github.com
User git
IdentityFile ~/.ssh/personal_git.pub
IdentitiesOnly yes
GitHubの個人アカウントでアクセストークンを払い出す
ローカルのGitからGitHubにアクセスするときの認証を行うためのアクセストークンを払い出します。これもこちらにGitHub公式のドキュメントがあります。
Git のオリジンを 3 で設定したHostを使うように設定する
GitでGitHubにアクセスするときに、SSHエージェントが3で施した設定に基づいてアクセスできるようにするため、リポジトリのオリジンを以下のように設定します。
git remote set-url origin personalgit:your-user-name/repository-name.git
GitHubの個人アカウントに属しているリポジトリでは、個人アカウントで払い出したアクセストークンを使用する
GitでGitHubにアクセスするときに、払い出したアクセストークンを使うようにしてください。これもこちらにGitHub公式のドキュメントがあります。
GitHub Enterpriseのアカウントの設定
基本的には1~6の繰り返しになります。
ssh config
~/.ssh/config
には以下の設定を追加します。
Host workgit
HostName github.com
User git
IdentityFile ~/.ssh/work_git.pub
IdentitiesOnly yes
Gitのオリジン
以下のように設定します。
git remote set-url origin workgit:your-organization/repository-name.git
GitHub CLIを使う場合
今日2023/04/06時点でGitHub CLI自体には複数のアカウントをサポートする機能が、こちらを見る限りなさそうです。が、1Passwordを使うことによって実現できます。こちらに1Passwordの公式ドキュメントがあります。
これを使用した場合、Gitの設定についても1Passwordの公式ドキュメントに記載があります。このドキュメントは一部引用しています。こちらです。