0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitHubの複数アカウントをコマンドから操作しよう

Last updated at Posted at 2019-10-15

はじめに

GitHubの使っていたアカウントのレポジトリがぐちゃぐちゃになってしまって何が何だかわからない!
って事でGitの練習も兼ねてサブアカウントを作ってコマンドから両方操作できるようにしてみようと思った次第です。

サブアカウントを作ろう

Githubで普通にサブアカウントを作りました。

ssh認証鍵を作ろう

ssh-keygen -t rsa -b 4096 -C "your_email@example.com" => sshキーを生成 ( -t:鍵のタイプ。 -b:鍵の長さ。デフォルトは2,048bitだがGithubは安全性の高い4,096bitを推奨している。-C:コメント )

ls ~/.ssh/id_rsa_github* => 生成した鍵の確認

chmod 600 ~/.ssh/id_rsa_github => 秘密鍵(.pubがついてない方)のパーミッションを変更

vi ~/.ssh/config => sshのコンフィグファイルに以下のように記述する

Host github-sub
  HostName github.com
  IdentityFile ~/.ssh/sub_rsa
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes
  
Host github
  HostName github.com
  IdentityFile ~/.ssh/main_rsa
  User git
  Port 22
  TCPKeepAlive yes
  IdentitiesOnly yes

ssh -T <HOST> => ssh接続できているかの確認

スクリーンショット 2019-10-08 10 24 24

Gitのコンフィグファイルを編集しよう

vi ~/.bashrc => bashの設定ファイルをvimで開きます。

iキーを入力してインサートモードにしてから

以下を.bashrcの中に追記してください。

function tomain() {
  git config --global user.name "<MAIN_ACCOUNT>"
  git config --global user.email "<MAIN_ADDRESS>"
}

function tosub() {
  git config --global user.name "<SUB_ACCOUNT>"
  git config --global user.email "<SUB_ADDRESS>"
}

escキー => :wqで保存です。

次に.bashrc内記述を反映させるためにsource ~/.bashrcコマンドを実行してください。

これで、

tomain => メインアカウントに切替え
tosub => サブアカウントに切替え

コマンドでアカウント切替えができるようになりました。

Githubで鍵を設定しよう

setting => SSH and GPG keys => New SSH key

中にopen ~/.sshで確認できる、
.pubがついているファイルをテキストエディタ等で開いてコピーペーストしてください。

複数アカウントによる問題点

  1. git init
  2. git add <ファイル名>
  3. git commit -m "<コメント>"
  4. git remote add origin <URL(https://github.com/<アカウント名>/<レポジトリ名>.git)>
  5. git push -u origin master

複数アカウントがあると、これではエラーになります。
( sshのコンフィグファイルがしたに記述した方を優先的に使用するからです。 )
そこで、

  1. git init
  2. git add <ファイル名>
  3. git commit -m "<コメント>"
  4. git remote add origin git@github(-sub):<URL(<アカウント名>/<レポジトリ名>.git)>
  5. git push -u origin master

これで解決です。

参考サイト

今日からはじめるGitHub

複数のgitアカウントを使用する場合

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?