It技術

GitHubで複数アカウントの登録【初心者向け】


複数のGithubアカウントを利用したい場合、特にメインのGithubアカウントを保持していて組織用に作成したGithubアカウントを登録することを想定しています。初心者向けにわかりやすく説明しました。

注意点
GitHubアカウントは1つの個人または1つの法人が複数の無料アカウントを保持することはできません。この辺はGitHubの規約に従ってください。

↓Bashの見方です。

1
2
3
\$ ←これはターミナルに打ち込む行を示す
> ←これは出力された内容を表す
# この行はコメントです

アカウントの作成

https://github.com/

上記サイトからGithubアカウントを作成する。

ここの詳細解説はスキップします。

SSH接続

鍵の生成

ターミナルを起動し、アカウントの秘密鍵・公開鍵の設定を行う。

1
$ cd ~/.ssh
1
2
3
4
5
6
$ ssh-keygen -t ed25519 -C [email protected]
> Generating public/private ed25519 key pair.
> Enter file in which to save the key (/Users/kamiki/.ssh/id_ed25519): id_rsa_company
> Enter passphrase (empty for no passphrase): 
> Enter same passphrase again:
...

メールアドレス部分は先ほど登録に使用したメアドにすること。

ファイル名を入力できるのでid_rsa_組織名の形にしてわかりやすい名前をつける。

ssh config設定

configファイルを開く。

1
2
3
4
5
# Macの場合
$ open ~/.ssh/config

# Mac以外
$ vi ~/.ssh/config

Macの場合はOpenでテキストエディタ上で開くことができる。ない場合はvimを使用する。

vimの操作方法は別途検索してください。

※そもそもconfigファイルがない場合はtouchコマンドを使用して作成する

1
2
# configファイルがない場合のみ
$ touch ~/.ssh/config
1
2
3
4
5
6
# 今回作成したアカウント
Host hoge-company
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_company

上記をconfigファイルに追記する。ただし変更箇所が2点。

  • Host名を任意の値に変更。GitHubのID名を使うとわかりやすくて良いかも。
  • identityFileを先ほど作成した鍵ファイルのファイル名に変更する。

Github上での操作

1
2
3
4
5
# Macの場合
$ pbcopy < ~/.ssh/id_rsa_company.pub

# Windowsの場合
$ clip < ~/.ssh/id_rsa_company.pub

まず、Macの場合はpbcopyで、Windowsの場合はclipコマンドを使用して公開鍵の中身をコピーする。

https://github.com/settings/keys

上記リンクから、SSH設定のページを開く。この時に作成したアカウントでログインできているか確認すること。

New SSH keyをクリック。

Titleには何を記載しても良いが、端末の機種名を入れるとわかりやすい。

Key typeはAuthentication KeyのままでOK。

Keyの中には先ほどコピーしたpubファイルの中身を内容をペーストする。

接続確認

1
2
$ ssh -T hoge-company
Hi hoge! You've successfully authenticated, but GitHub does not provide shell access.

先ほどのcofigで設定したホスト名を使用して接続確認を行う。

You’ve successfullyと出ていたら接続に成功している。

アカウントの切り替え設定

組織用のフォルダーを用意する。今後、組織で使用するコードやプロジェクトは全てこの中で整理すると便利。

ちなみにMacの人はDocumentsというフォルダがデフォで存在するのでそれを使用している。Windowsの人は違うかも。

1
$ mkdir ~/Documents/company

組織用のgitconfigを作成して開く。.gitconfig_組織名にするとわかりやすい。

1
2
3
4
5
6
7
# Macの場合
$ touch ~/.gitconfig_company
$ open ~/.gitconfig_company

# Mac以外
$ touch ~/.gitconfig_company
$ vi ~/.gitconfig_company
1
2
3
[user]
		name = hoge-company
		email = [email protected]

上記を書き込む。以下4点は自分の設定に変更する

  • nameは自分のGithubのアカウント名
  • emailはGitHubの登録したメールアドレス

次にメインのgitconfigを修正する。もしgitconfigが存在しなかったらtouch コマンドで作成する

1
2
3
4
5
6
7
# Mac
$ touch ~/.gitconfig #ない場合のみ
$ open ~/.gitconfig

# Mac以外
$ touch ~/.gitconfig #ない場合のみ
$ vi ~/.gitconfig
1
2
3
4
5
6
7
[user]
  name = hoge
  email = [email protected]
  

[includeIf "gitdir:~/Documents/comapny/"]
		path = ~/.gitconfig_company

ここのnameとemailはメインで使用しているアカウントの情報を記載する。

includeIf以下を追記する。修正点は2点。

  • includeIfのパスは先ほど作成した組織用のフォルダ
  • pathは先ほど作成したgitconfigのパス

以上のように設定することで、組織用のフォルダ以下では組織用のGitHubアカウントが、そのほかのフォルダでは自分のメインのGitHubアカウントが適応される。

会社や所属が増えても同様の方法でgithubアカウントを綺麗に管理しつつ増やすことができます。

クローン

注意点
すでにリポジトリが作成されている場合はgit remote add コマンドを使用してください。

組織用のフォルダに移動。

1
$ cd ~/Documents/company

次にGitHubでクローンしたいリポジトリを開き、<> CodeのボタンからSSHを確認。画像の赤線が引いてあるところのコマンドをコピー

1
$ git clone git@hoge-company:compnay/reponame.git

デフォルトでは[email protected] となっているので、github.comのところをsshのconfigで設定したホスト名に変更する。

git clone git@ホスト名:OrganizationのGitHubID/リポジトリ名.gitという構成になる。

エラーなくクローンが完了したら終了。

以下のコマンドで正しいGitアカウントが使われているか確認できる。

1
2
$ git config user.name
> hoge-company

もし正しく指定されていない場合は手動で切り替えることもできます。

下記のコマンドはローカルフォルダのアカウントの設定のみを変更します。

1
2
$ git config user.name hoge-compnay
$ git config user.email [email protected]

その他操作

↓公式のGitHubチートシート

https://training.github.com/downloads/ja/github-git-cheat-sheet/