Git CLI でログインアカウントを切り替える

Page content

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設定の手順

  1. 新しいSSHキーペアの作成:

    ssh-keygen -t rsa -b 4096 -C “your_new_email@example.com” -f ~/.ssh/id_rsa_new_account

  2. ~/.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

  3. リモート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キーの設定について詳しく知りたいですか?