はじめに
株式会社implの奈良です。
GitHubを利用する際、仕事用とプライベート用で異なるアカウントを持つ方は少なくないでしょう。しかし、アカウントを切り替える際、毎回手動で設定を変更するのは非常に手間です。そこで今回は、シェルスクリプトを使ってコマンド一つで簡単にGitHubアカウントを切り替える方法を紹介します。
必要なツール
- macOSまたはLinux
zsh
シェル(macOSではデフォルトでzsh
が使用されています)- Gitの基本的な知識
~/.zshrc ファイルの編集
まず、シェルの設定ファイルに切り替え用の関数を追加します。zsh
シェルの設定ファイルである ~/.zshrc
を編集します。
ターミナルを開き、以下のコマンドを実行して ~/.zshrc
を開きます。
vi ~/.zshrc
~/.zshrc
の末尾に以下のスクリプトを追加
# GitHubアカウントの切り替え用関数
function gitmain() {
git config --global user.name "your-work-username"
git config --global user.email "your-work-email@example.com"
echo "Switched to work account:"
echo "user.name: $(git config --global user.name)"
echo "user.email: $(git config --global user.email)"
}
function gitsub() {
git config --global user.name "your-private-username"
git config --global user.email "your-private-email@example.com"
echo "Switched to private account:"
echo "user.name: $(git config --global user.name)"
echo "user.email: $(git config --global user.email)"
}
// gitmain() 関数では、仕事用のGitHubアカウントに切り替えます。
// gitsub() 関数では、プライベート用のGitHubアカウントに切り替えます。
ファイルを保存して閉じます。vi
で編集している場合は、以下の手順で保存します。
Esc
キーを押して編集モードを終了します。:wq
と入力してエンターキーを押します。
設定の適用
~/.zshrc
ファイルを編集しただけでは、現在のシェルに設定が反映されていないので、以下のコマンドを実行して変更を適用します。
source ~/.zshrc
これで、追加した関数が使用できるようになります。
GitHubアカウントの切り替え
仕事用アカウントに切り替え
仕事用のアカウントに切り替えたいときは、以下のコマンドを実行します。
gitmain
実行後、ターミナルに以下のようなメッセージが表示され、切り替えが確認できます。
Switched to work account: user.name: your-work-username user.email: your-work-email@example.com
プライベート用アカウントに切り替え
プライベート用のアカウントに切り替えたいときは、以下のコマンドを実行します。
gitsub
実行後、以下のメッセージが表示されます。
Switched to private account: user.name: your-private-username user.email: your-private-email@example.com
まとめ
上記で解説した設定を使えば、仕事用とプライベート用のGitHubアカウントを簡単に切り替えられます。毎回手動で設定を変更する手間を省けるため、プロジェクトの切り替えがスムーズになります。~/.zshrc
ファイルを使うことで、設定が持続的に保存され、シェルの再起動後も使用できるのがメリットです。
私は仕事と勉強用でGit管理を分けたいと同僚に相談したときに上記の方法を教わりました。かなり便利なので設定をしておくことをお勧めします。
※今回の記事では、アカウント切り替え後に本当にGitHubアカウントが切り替わっているかをコマンドで確認する手間を省くためにアカウント情報等を表示していますが、セキュリティ観点から不要と判断する場合は適宜アカウント情報表示箇所を削除してください!