会社の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 件のコメント :
コメントを投稿