MENU

ディレクトリベースで複数のGitHubアカウントを管理する方法

この記事では、個人用と仕事用のGitHubアカウントを、プロジェクトディレクトリごとに自動的に切り替えて使用する方法を詳しく解説します。具体的には、~/projects/personal ディレクトリ下のプロジェクトでは個人のGitHubアカウントを使用し、~/projects/work ディレクトリ下では仕事用のアカウントを使用する状況を想定します。コマンドラインでのGit操作だけでなく、VSCodeなどのIDEでも適用されるようにします。

目次

前提条件

  • Gitの基本的な知識があること。
  • アカウントごとにSSHキーを生成しており、それぞれのGitHubアカウントに登録していること。
  • 基本的なGit操作に慣れていること。
  • Git 2.13以降であること。

Git設定の基本

.gitconfigファイルはGitの設定を管理するための中心的なファイルで、ユーザ名やメールアドレス、エイリアス、スクリプトの実行設定などを含みます。全体的なユーザー設定(グローバル設定)は通常、ユーザのホームディレクトリに位置する.gitconfigファイルに記述されます。

ディレクトリごとのGit設定

Git 2.13以上では、includeIfディレクティブを使用して、特定のディレクトリに基づいてGit設定を動的に適用することができます。これを利用して、異なるプロジェクトディレクトリで異なるGitHubアカウントを使い分ける設定を行います。

基本的な.gitconfig設定

ホームディレクトリの.gitconfigに以下の設定を追加します。

[user]
    name = default_name
    email = default_email@example.com

[includeIf "gitdir:~/projects/personal/"]
    path = ~/.gitconfig-personal
[includeIf "gitdir:~/projects/work/"]
    path = ~/.gitconfig-work

各ディレクトリ用の.gitconfigファイル

~/.gitconfig-personalファイルには次のように記述します:

[user]
    name = personal_username
    email = personal_email@example.com
[core]
    sshCommand = "ssh -i ~/.ssh/id_rsa_personal -F /dev/null"

~/.gitconfig-workファイルには次のように記述します:

[user]
    name = work_username
    email = work_email@example.com
[core]
    sshCommand = "ssh -i ~/.ssh/id_rsa_work -F /dev/null"

まとめ

ディレクトリベースでGitHubアカウントを管理することで、複数のアカウントを効率的かつ安全に運用することが可能です。設定は初めに少し時間がかかりますが、一度設定してしまえば、その後は自動で適切なアカウントが使用されるため、非常に便利です。

目次