⛏️

Gitアカウントをプライベート用と仕事用にスムーズに切り替える

2023/06/10に公開1

プライベート用と仕事用のGitアカウントを楽に切り替える方法がないかを調べていたら
GitHub CLI を使った方法があったので、今回紹介します。

事前準備

  1. 各アカウントのアクセストークンを発行する

  2. ~/.config/gh/ にプライベート用と仕事用の認証設定を作成する

    • {{ access_token }} にアクセストークンを設定する
    • {{ user_name }} にGitアカウント名を設定する
$ vim ~/.config/gh/hosts.yml.personal

github.com:
    oauth_token: {{ access_token }}
    git_protocol: ssh
    user: {{ user_name }}
$ vim ~/.config/gh/hosts.yml.work

github.com:
    oauth_token: {{ access_token }}
    git_protocol: ssh
    user: {{ user_name }}
  1. 認証ファイルをコピーするコマンドのエイリアスを設定する
$ gh alias set --shell personal 'cp ~/.config/gh/hosts.yml.personal ~/.config/gh/hosts.yml && gh auth status'

- Adding alias for personal: cp ~/.config/gh/hosts.yml.personal ~/.config/gh/hosts.yml && gh auth status
✓ Added alias.
$ gh alias set --shell work 'cp ~/.config/gh/hosts.yml.work ~/.config/gh/hosts.yml && gh auth status'

- Adding alias for work: cp ~/.config/gh/hosts.yml.work ~/.config/gh/hosts.yml && gh auth status
✓ Added alias.

アカウントの切り替え

  • プライベート用に切り替える
$ gh personal
github.com
  ✓ Logged in to github.com as {{ username }} (/Users/username/.config/gh/hosts.yml)
  ✓ Git operations for github.com configured to use ssh protocol.
  ✓ Token: ghp_************************************
  • 会社用に切り替える
$ gh work
github.com
  ✓ Logged in to github.com as {{ username }} (/Users/username/.config/gh/hosts.yml)
  ✓ Git operations for github.com configured to use ssh protocol.
  ✓ Token: ghp_************************************

これで、楽に切り替えられるようになりました。
今回、GitHub CLIでエイリアスを登録できることを知ったので、
もっと活用していきたいと思います!

参考

Discussion

響

素晴らしい記事をありがとうございます。

実際にこれを動作させるときは、参考のGistを追っていった方がいいかもしれません。