2
1

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 3 years have passed since last update.

GitHubのアカウントをディレクトリごとに切り替える

Last updated at Posted at 2021-05-23

#はじめに
大学用のGitHubアカウントと,プライベート用のGitHubアカウントを使い分けようと思い,調べたことをまとめてみました.

#複数アカウントの使い分け
###メインのアカウントについて
まずは以下のコマンドでメインのアカウントについて,~/.gitconfigに設定します.この際,オプションは--globalとします.
既に設定が完了している場合は,読み飛ばしてください.

$ git config --global user.name "name"
$ git config --global user.email "email"

これでメインアカウントの設定が完了しました.

###サブのアカウントについて
メインのアカウントでは,全てのディレクトリに対してアカウントの紐付けがされています.ここでは,サブのアカウントをディレクトリごとに紐付けていきます.

まずは,サブのアカウントで使いたいディレクトリへ移動します.
先程,--globalオプションを用いて設定を行いましたが,ここでは--localオプションを用います.これで,そのディレクトリ内の./.git/configにそれぞれのユーザネーム,メールアドレスが登録されます.

$ cd sub_dir  // ディレクトリ名は任意
$ git config --local user.name "name"
$ git config --local user.email "email"

このときの"name""email"には,サブのアカウントのユーザネーム,メールアドレスを入れてください.

###.ssh/configファイルの設定
.ssh/configの設定には,それぞれのアカウントの秘密鍵のパスを指定します.なお,Host名は異なる名前にします(HostNameが同じのため,秘密鍵・公開鍵の整合性が保たれないため).

Host github-research
    HostName github.com
    IdentityFile ~/.ssh/research_rsa
    User git

Host github-study
    HostName github.com
    IdentityFile ~/.ssh/study_rsa
    User git

####注意
リモートリポジトリの情報の追加は,一工夫必要です.
メインとサブでは,それぞれのHost名を参照したremote urlの設定を行ってください(Pushしたときにアクセス権がないよと言われる).

$ git remote add origin git@github-research:<メインアカウント名>/<リポジトリ名>.git
$ git remote add origin git@github-study:<サブアカウント名>/<リポジトリ名>.git

#おわりに
うまくできれば,それぞれのディレクトリごとに.git/configの設定と,リモートリポジトリの情報の追加でそれぞれのアカウントで使い分けができるはずです.
ほかにも,シェルコマンドを定義して切り替える方法もあるみたいです.
しばらく使ってみて,もっと効率の良い切替方法があればまた更新したいと思います.

参考記事
複数のgitアカウントを使用する場合
GitHubを複数のアカウントで利用するためのメモ

#追記
他人のプライベートリポジトリをcloneする場合

$ git clone git@github-study:[他人のアカウント名]/[リポジトリ名].git
2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?