概要
開発者は、個人プロジェクトと業務プロジェクトを並行して管理することがあるかと思います。それぞれのリポジトリが異なる場合、以下の課題があるかと思います。手動でするとうっかりすると間違うことがあると思います、ここで自動で切り替える方法を解説したいと思います。
- 個人のGitアカウントと業務用のアカウントの切り替え
- SSHキーやアクセストークンの切り替え
前提
Mac環境
my-repository用SSHキーの用意
my-repository用SSHキーの用意
git@github.com:my-repository/my-project.git
git@github.com:work-repository/work-project.git
手動
自動
drienvのインストール
brew install direnv
windowsなどはdirenvインストールを参考してください
sshキーの作成
my repository用SSHキーの作成
my-repository、work-repositoryなどのフォルダーは事前にフォルダーを作成が必要です。
mkdir -p ~/.ssh/my-repository
ssh-keygen -t rsa -f ~/.ssh/my-repository/id_rsa
生成された~/.ssh/my-repository/id_rsa.pubの中身をGithubにログインしSSHキーとして登録します。
work repository用SSHキーの作成
mkdir -p ~/.ssh/work-repository
ssh-keygen -t rsa -f ~/.ssh/work-repository/id_rsa
生成された~/.ssh/work-repository/id_rsa.pubの中身をGithubにログインしSSHキーとして登録します。
.sshフォルダー、.ssh/config編集
.ssh/configを編集してそれぞれのSSHキーを設定します。
Host MY_GIT #任意のホスト名
HostName github.com
IdentityFile ~/.ssh/my-repository/id_rsa
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
Host WORK_GIT #任意のホスト名
HostName github.com
IdentityFile ~/.ssh/work-repository/id_rsa
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
マイプロジェクトでのclonおよびoriginの設定
個人プロジェクトoriginを設定
~/my-project/my-appに個人のプロジェクトがあるなら以下のようにしてoriginを設定できます。
cd ~/my-project/my-app
git remote set-url origin git@MY_GIT:username/my-app.git
ワークプロジェクトoriginを設定
~/work-project/work-appにプロジェクトがあるなら以下のようにしてoriginを設定できます。
cd ~/work-project/work-app
git remote set-url origin git@WORK_GIT:username/work-app.git
clon時に.ssh/configのHostNameを利用する
「new-work-app」というgit管理プロジェクトをclonしたいとき
git clon git@WORK_GIT:username/new-work-app.git