2025年10月21日
2025年10月21日
はじめに
プロジェクトに応じてGitHubのメインアカウントとサブアカウントを使い分けたい場合があります。この記事では、新たにサブアカウントを作成してリポジトリごとにGitHubアカウントを設定する方法を紹介します。
準備するもの
事前にGitHubのサブアカウントを作り、新たに作成した公開鍵をサブアカウントに登録しておきます。GitHubにおけるアカウントの作り方や公開鍵の登録方法については既に多くの記事が存在するため、具体的な手順は省略します。
~/.ssh/configファイルの編集
GitHubのサブアカウントの秘密鍵を使用してコミットをプッシュするために、SSHクライアントの設定をします。既にメインアカウントにおいて以下のようなホスト情報が登録されている状況を考えます。
host github.com
user git
hostname github.com
identityfile ~/.ssh/id_ed25519
ここで、サブアカウント用に作成した秘密鍵のファイル名をid_subaccount
とします。~/.ssh/config
に以下のようなホスト情報を追記します。
host github-subaccount
user git
hostname github.com
identityfile ~/.ssh/id_subaccount
ホスト情報の名前は任意です。メインアカウントで使用しているホスト情報と区別しやすい名前を付けるのが良いでしょう。
ユーザー情報の登録
続いて、「サブアカウントのユーザー情報を用いてコミットしたいファイル」が存在するディレクトリ(リポジトリ)に移動します。複数のGitHubアカウントを使い分ける場合は、基本的にリポジトリごとにユーザー情報を登録する必要があります。 リポジトリに対するユーザー情報の登録におけるスコープは3種類あります。以下にスコープの名前と適用範囲を示します。
名前 | 適用範囲 |
---|---|
system | 全てのユーザーの全てのリポジトリ |
global | 現在のユーザーの全てのリポジトリ |
local | 現在のリポジトリ |
今回はリポジトリごとにユーザー情報を登録する必要があるため、local スコープを指定します。 |
git config --local user.email "<サブアカウントのメールアドレス>"
git config --local user.name "<サブアカウントのユーザー名>"
リモートリポジトリの登録
さらに、サブアカウントのリモートリポジトリにコミットをプッシュしたい場合はリモートリポジトリを登録する必要があります。
先ほど、github-subaccount
という名前でサブアカウント用のSSHクライアントの設定をしました。これを活用することで、サブアカウントのリモートリポジトリを簡単に登録できます。
通常、GitHubのSSH形式のリポジトリURLは以下のように表示されます。
git@github.com:<ユーザー名>/<リポジトリ名>.git
この内、ユーザー名(git)とホスト名(github.com)はgithub-subaccount
というホスト情報に既に登録されているため、「:」の直前までの文字列をsubaccount
に置き換えます。
subaccount:<ユーザー名>/<リポジトリ名>.git
このURLを用いてリモートリポジトリのオリジンを登録しましょう。
git remote add origin subaccount:<ユーザー名>/<リポジトリ名>.git
以上の操作により、複数のGitHubアカウントを使い分けられるようになります。