- 個人アカウントと社用アカウントなど、Git アカウントが2つある
- ワークスペースによってそれを自動的に切り替えたい
昨今はリモートワークする人も増えたので、こういうニーズはあるんじゃないでしょうか?
実は簡単にできるので、紹介します。
VSCode でのやり方を紹介しましたが、他でも応用は利くと思います。
git config --global
をスクリプトで手動切り替え、といった記事が多いですが、いざ運用すると結構面倒ですよね。
本記事は一度設定してしまえば自動的に切り替わるようになります。
クローンしたワークスペースでターミナルを開く
A と B、2つのアカウントを持っているとします。
B のリポジトリは現在、A からプッシュ出来ないプライベートリポジトリです。
通常は A からプッシュするワークスペースばかりなので問題ありませんが、今回に限っては問題。
通常なら git config --global
でユーザーを切り替えますが、いちいち意識するのは面倒です。
今クローンしたワークスペースだけ、B の権限でアクセス出来れば…。
それを満たしてくれるのが git config --local
です。
--local | ローカルに作成した .git ごとに設定できます。 設定した場合 global より優先。 |
--global | こちらはおなじみ。local 設定がない場合、この値が使用されます。 |
VSCode でクローンしたワークスペースが選択された状態で、ターミナルを起動(ターミナル > 新しいターミナル
)します。
git config --local user.name [Bのユーザー名] git config --local user.email [BのEメールアドレス]
こうすることで、このワークスペースのみ B の権限(local)、それ以外は A の権限(global)でアクセスできるようになります。