#はじめに
会社で使用している設定ファイルの中には個人的に使ってる設定ファイルも含まれているので、
そーいうのは個人的なアカウントのリポジトリで管理している。
このままだと会社のアカウントでPushされてしまうので、
このリポジトリのファイルは個人アカウントでコミットしたい。
みたいな設定の仕方の忘却録。
##まずは個人用アカウントへ繋ぐ為の公開鍵・秘密鍵を作成&設定
$cd ~/.ssh/{$個人アカウント用}
$ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
今使用しているのとは別にしたいので、適当に名前つける。
一回目のタイミングで名前を指定する。
あとはEnter2回叩く。
生成された公開鍵をGitHubに設定する。
この辺とか参考: https://qiita.com/0ta2/items/25c27d447378b13a1ac3
sshのconfig設定について
vim ~/.ssh/config
configが無ければ作成する。
Host {$社内用}
HostName github.com
IdentityFile ~/.ssh/{$社内用}/id_rsa
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
Host {$個人用}
HostName github.com
IdentityFile ~/.ssh/{$個人用}/{$新しく作ったKey名}
User git
Port 22
TCPKeepAlive yes
IdentitiesOnly yes
Hostに適当に名前をつけて接続テスト。
ssh -T {$社内用}
Hi {$社内用アカウント名} You've successfully authenticated, but GitHub does not provide shell access.
ssh -T {$個人用}
Hi {$個人用アカウント名} You've successfully authenticated, but GitHub does not provide shell access.
テスト成功であればこんな感じにsuccessfullyと出る。
もし、接続失敗することがあれば、~/.ssh/known_hostsの中身を消して試してみる。
gitconfigについて
まず、gitconfig設定には、システム全体system
、ユーザー全体global
、個別リポジトリ用local
の3種類がある。
読み込み順は、system
→global
→local
の順に読まれるのでlocal設定があればlocalの設定が反映される。
各設定の確認は下記で行える。
git config --system --list // gitをinstalしたディレクトリ
git config --global --list // ~/.gitconfig
git config --local --list // 対象リポジトリ内の .git/config
社内用で使用しているのはglobal設定なのでこれはそのままにしておいて、
個人用リポジトリ内でのlocalの設定をしていく。
// 任意の場所で
git clone {$該当のリポジトリ}
cd {$該当のリポジトリ}/.git
vim config
cloneしてきた.git
内にあるconfig
がlocal設定ファイルになる。
[user]
name = 該当のユーザID
email = 該当のメールアドレス
このlocal設定に個人用を追加しておく。
git config --local user.name "該当のユーザID"
git config --local user.email "該当のメールアドレス"
これでも名前とメールアドレスを追加出来る。
あと、このリポジトリのremoteの設定をしておかないとpush出来ないので設定する。
git config remote.origin.url
git@github.com:[該当のユーザID]/[リポジトリ].git
これで確認してみると@マーク以下がgithub.com
になってので、
これだとssh config
で設定しているHostName
が2つ存在するので接続Errorになる。
ssh config
で設定した情報を元に@マーク以下を修正。
git remote set-url origin git@[個人用ホスト名]>:[ユーザID]/[リポジトリ].git
一旦、pushする前にgit log
などで確認しておくと良い。
社内用でpushする時は会社のアドレスで、個人のファイルを修正した時はlocal
で設定したものが反映される。