この記事では、個人用と仕事用の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アカウントを管理することで、複数のアカウントを効率的かつ安全に運用することが可能です。設定は初めに少し時間がかかりますが、一度設定してしまえば、その後は自動で適切なアカウントが使用されるため、非常に便利です。