やりたいこと
プライベートで使ってるgitのリモートリポジトリ(github)に、自分のアカウントでコミット・プッシュしたい
(会社の名前を一切出さないようにする)
やること(会社のマシンで設定)
- プライベート用のssh鍵を作成し、リモートリポジトリに登録
- ~/.ssh/config にhost設定を追記
上記設定後、必要なリポジトリで個別に設定を行う
1. プライベート用のssh鍵を作成し、リモートリポジトリに登録
プライベート専用のssh鍵を作成
// sshディレクトリに移動
$cd ~/.ssh
// ssh鍵生成
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
まずファイル名を聞かれるので、プライベート用とわかるファイル名を入力
./id_private
パスフレーズを2回聞かれるので同じものを入力
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
リモートリポジトリに登録
$ pbcopy ~/.ssh/id_private.pub
使用するサービスに上記を登録。
2. ~/.ssh/config にhost設定する
~/.ssh/config
に(なければ作成)下記を追加
Host github.private
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_private
TCPKeepAlive yes
IdentitiesOnly yes
各リポジトリ個別での設定(リポジトリを作成 or git clone
するたびに設定する)
リモートリポジトリの設定
2.で設定したhost名を使用してgit clone
(もしくはgit remote add
)する
$ git clone github.private:account/sample.git
// いつもはこう
// $ git clone git@github.com:account/sample.git
個別のuser設定
接続はプライベートアカウントでできるようになったけど、コミットする際にglobal設定が適用されるので、コミットログにうっかり会社のメールアドレスが出てしまいヤバい。
該当リポジトリ配下でlocalのgit設定を行う。
$ git config --local user.name "user name"
$ git config --local user.email "username@example.com"
以上で、設定したリポジトリの操作は全てプライベートで行ってるように見えるはず。
会社では仕事を優先しましょうね!