Skip to content

同一端末で、複数のGitHubアカウントを使い分ける方法

You Kinjoh edited this page Apr 16, 2014 · 1 revision

前提

前提は各々の環境に合わせて適時読み替えて下さい。

  • 既にsshのキーが登録されている
    • 既定のキーはGitHubでは使用しない方針
  • 既にGitHubアカウントが2つある
  • 既にGitHubに登録するsshのキーが複数作成済み
    • ここでは、 id_rsa.companyid_rsa.community とする
  • 既にGitHubアカウントにsshのキーが登録されている

設定

ssh

~/.ssh/config に以下を追記

Host github.com
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes
Host github.com-for-company
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa.company
  TCPKeepAlive yes
  IdentitiesOnly yes
Host github.com-for-community
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa.community
  TCPKeepAlive yes
  IdentitiesOnly yes

gitとgithubとsslの連携

git clonegit remote add の時、リポジトリ名の指定を git@github.com:account/sample.git のようにすると思いますが、 これを github.com-for-company:account/sample.git のように指定することで 使用するsslのキー(==GitHubアカウント)を指定することができます。

git

普段ひとつの名前でgitを利用している場合、 git導入時に

% git config --global user.name "handle name"
% git config --global user.email "handle.name@community.sample.com"

のようにしたと思います(上記、ハンドルネームと仮定)。 これは、gitのrepositoryにcommitした時に authorとcommitterとして使われます。 このままでは複数のrepositoryに同じ名前でコミットされてしまうので git init 直後や git clone 直後に repository配下で以下を実行して下さい(下記、本名と仮定)。

% git config --local user.name "real name"
% git config --local user.email "real.name@company.sample.com"

これを行なわないと、gitの既定の設定が使われます。 環境次第ですが 「業務のレポジトリにハンドルネームでコミット」という恥ずかしい状況もありえます。 また、初めて git push を行なう前に、 git log でcommitter名を確認すると良いと思います。

You can’t perform that action at this time.