LoginSignup
0
0

More than 3 years have passed since last update.

Gitアカウントを2つ使用して運用するには

Last updated at Posted at 2021-01-15

はじめに

会社で使用している設定ファイルの中には個人的に使ってる設定ファイルも含まれているので、
そーいうのは個人的なアカウントのリポジトリで管理している。
このままだと会社のアカウントで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種類がある。
読み込み順は、systemgloballocal の順に読まれるので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で設定したものが反映される。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0