会社のPCからgit pushすると、仕事用アカウントとしてpushされてしまうのだ。
ということで、仕事用とプライベート用のアカウントを切り替えて使う方法を調べた。
環境は以下のとおり。
OSXを使用しているが、Windowsでの操作もほぼ変わらないだろう。
- Mac OSX Yosemite
- git v2.5.4
※ Windowsの場合は、Git for Windowsをインストールし、Git Bashを使うと便利
1. ssh-keygenで公開鍵/秘密鍵を作成する
GitHubでは同じ公開鍵を複数のアカウントに登録することができない。
そのため、プライベート用の秘密鍵/公開鍵を作成する。
$ ssh-keygen -t rsa -f github-private
OSXの場合は「~/.ssh」ディレクトリに作成される。
Windowsの場合は「c:/User/{ユーザ名}/.ssh」ディレクトリに作成される。
秘密鍵は「github-private」、公開鍵は「github-private.pub」となっていると思う。
2. .ssh/configを修正する
「~/.ssh/config」ファイルを修正して、ホストごとに秘密鍵を使い分けるようにする。
$ vim ~/.ssh/config ------------------------- # 仕事用 Host github.com User git Port 22 HostName github.com IdentityFile ~/.ssh/id_rsa ← ここに仕事用の秘密鍵を設定 TCPKeepAlive yes IdentitiesOnly yes # プライベート Host github_private User git HostName github.com IdentityFile ~/.ssh/github_private ← ここにプライベート用の秘密鍵を設定 TCPKeepAlive yes IdentitiesOnly yes
Windowsの場合は、お手持ちのエディタ(メモ帳でもOK)で編集する。
Hostに「github.com」を使ったリポジトリは仕事用、「github_private」を使ったリポジトリはプライベートになる。
3. 公開鍵をGitHubに登録する
4. プライベート用アカウントを設定する
$ cd {開発用ディレクトリ} $ git clone git@github_private:{ユーザ名}/{リポジトリ名}.git
「git@{ホスト名} 」のホスト名に「2. .ssh/configを修正する」で設定したプライベート用ホスト(ここではgithub_private)に変更する。
次にgitconfigを設定する。
$ git config user.name "{プライベート用ユーザ名}" $ git config user.email "{プライベート用メールアドレス}"
ここでは「--global」を付けないこと!
上記コマンドを実行すると以下のようになるはずだ。
$ less ./.git/config ------------------ [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = git@github-private:BcRikko/repo.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master [user] name = bc_rikko ←プライベート用ユーザ名 email = hoge@example.com ← プライベート用メールアドレス
あとは、いつもどおりGitHubにpushするだけで大丈夫。
参考サイト
written by @bc_rikko
以上
0 件のコメント :
コメントを投稿