iku8log

Webエンジニア、SEO、Web解析等々しております。タダのメモ。

GitHubに2つ目のアカウントを登録して、同じPCから切り替える方法

f:id:iku8:20161011005359j:plain

新しくGitHubのアカウントを作ったんですけど、今まで使っていたアカウントも残しつつ両方使っていきたいので、切り替えて使えるようにしてみました。

前提環境

現在GitHubのアカウントが2つあります。ここでは仮に、GitHub IDをgithub_old、github_newとしておきます。 MacOSX git2.9.0

sshの設定を行う

Host new_github
  HostName github.com
  IdentityFile ~/.ssh/github_new_rsa
  User git
  TCPKeepAlive yes
  IdentitiesOnly yes

new_githubというHost名は任意の名前で結構です。 これはgithub.comへのエイリアスを張っています。つまりnew_githubgithub.comを表します。 新しいアカウントはnew_githubを使用して、古いアカウントはgithub.comを使用する感じです。

sshの鍵を新しく生成し登録する

$ ssh-keygen -t rsa -C メールアドレス -f github_new_rsa

~/.ssh/にgithub_new_rsa.pubが生成されるのでこれを、新しく作ったGitHubアカウントのSSH keysに登録します。

リポジトリを作成してcloneし、新しいGitHubアカウントに登録する

リポジトリを作成後、cloneしてきます。git init する形でも問題ありません。 cloneしてきたら、リポジトリ直下に .git/configに[remote "origin"]という項目があります。

url = git@github.com:user2/リポジトリ.git

を以下のように変えます。

url = git@new_github:user2/リポジトリ.git

new_githubに変えることで、新しいGitHubアカウントに切り替えています。 また .git/config[user]項目にはuserとemailが記載されていると思いますが、これも新しいアカウントのもに変えます。

このように設定することで、pushした際、ユーザを切り替えて新しいアカウントのリポジトリにpush出来ます。

感想

次から新しくリポジトリをcloneしてきた時、.git/configを編集するのは少し面倒な気がする。コマンドもあるけど、こっちの方が面倒。git remoteとかgit confi --globalなんとかなんとかと打たないといけない。 実はもっと良い方法があるのかもしれない。けど今はわからない。。。皆さん、簡単な方法ありました教えてください! userとemailは~/.gitconfigを変えることで設定しなくて良くなるけど、古いアカウントでcloneしてきた場合、同じことをしないといけない。