Git CLI でログインアカウントを切り替える
Git CLI でログインアカウントを切り替えるには、主にリモートリポジトリへの認証情報を変更する必要があります。
これは、Gitのグローバル設定、ローカルリポジトリ設定、または使用している認証情報ヘルパーによって異なります。
1. 認証情報の確認と削除 (推奨)
最も一般的なのは、OSが認証情報をキャッシュしている場合です。
認証情報ヘルパーのクリア
新しいアカウントでログインしたい場合は、既存の認証情報をクリアまたは削除するのが最も確実です。
-
Linux/macOS (Git Credential Manager Core (GCM) 使用時):
git credential-manager erase
ホスト名を指定して特定の認証情報を削除することも可能です
git credential-manager erase –host github.com
-
Windows (Git Credential Manager Core (GCM) 使用時): Windowsの資格情報マネージャーを開き、「Windows資格情報」セクションにあるGitに関連するエントリを削除します。(例:
git:[https://github.com](https://github.com)など) -
macOS (Keychain 使用時): 「キーチェーンアクセス」アプリを開き、Gitホストに関連するパスワードエントリを削除します。(例:
[github.com](http://github.com))
認証情報をクリアした後、次にgit pushなどの操作を行う際に、**新しいアカウントでログイン(ユーザー名とパスワード、またはパーソナルアクセストークン)**を求められます。
2. SSHキーの利用 (推奨)
複数のアカウントを頻繁に切り替える場合、SSHを利用し、リポジトリごとに異なるSSHキーペアを使用するのが最も管理しやすい方法です。
SSH設定の手順
-
新しいSSHキーペアの作成:
ssh-keygen -t rsa -b 4096 -C “your_new_email@example.com” -f ~/.ssh/id_rsa_new_account
-
~/.ssh/configファイルの編集: 新しいキーを使用するための設定を追加します。既存アカウントの設定 (デフォルトキーを使用する場合)
Host github.com HostName github.com IdentityFile ~/.ssh/id_rsa User git
新しいアカウントの設定 (別名を設定)
Host github-new HostName github.com IdentityFile ~/.ssh/id_rsa_new_account # 新しく作成したキー User git
-
リモートURLの変更: アカウントを切り替えたいローカルリポジトリで、リモートURLを変更し、
Host設定の別名を使用します。現在のURLを確認
git remote -v
URLを変更 (例: github.com から github-new に切り替え)
git remote set-url origin git@github-new:username/repo.git
これで、このリポジトリは
github-newの設定(新しいSSHキー)を使用して通信します。
3. Gitコミット情報の変更
上記はリモートリポジトリへの認証に関するものですが、コミットに記録されるアカウント情報(ユーザー名とメールアドレス)も切り替える必要があります。
コミットユーザー情報の変更
-
グローバル設定の確認・変更 (全リポジトリに適用):
git config –global user.name “Your New Name” git config –global user.email “new_account@example.com”
-
ローカル設定の確認・変更 (現在のリポジトリのみに適用):
git config user.name “Repo Specific Name” git config user.email “repo_specific_email@example.com”
ローカル設定はグローバル設定よりも優先されます。
最もスムーズな方法は、1. 認証情報のクリア を行い、新しいアカウントで認証し直すか、2. SSHキー を利用してリポジトリごとに接続設定を分けることです。
どの方法が最適か、SSHキーの設定について詳しく知りたいですか?