複数のGitHubアカウントを使い分ける方法

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アカウントを使い分けられるようになります。


記事をシェア