やったもん勝ち

主にプログラミングのこと。生産性向上の某とかも。

一つのPCから複数のgithubアカウントを使い分けてpushする

一つのPCから複数のgithubアカウントを使い分けてpushする ということをやってみたいと思いました。

背景

というのも、仕事とプライベートみたいな使い分け方じゃなく、開発用のアカウントと、英語学習用のアカウントを使い分けたいなと思ったからです。
日々の学んだことや、日記的なことを英語でアウトプットしていきたいなと思いまして、何かないかなーと。
メモやテキストに書いてるだけなのもなんかなーと思いまして。あと、オンラインで管理したい。
じゃあブログでいいじゃないかと思ったわけですが、ブログだと、検索ができない。(と思ったのですが、普通に検索できますね、ブログでも良かったかもしれない。しかしせっかくエンジニアになったので、エンジニアっぽいことをやってみようじゃないかと)
一つのディレクトリにまとめとけば、エディタ開いて検索とかできるなと。ブログより素早くアクセスできるなと。(しかしgithub嬢では検索できないかぁ〜) ということで、一つのリポジトリで管理しようと思いました。
これの何がいいって、githubで草を生やせること! これだけのためにgithubを使うと言っても過言でもない ちゃんと習慣としてできているかが一目瞭然になること!これがいい。
というわけで、githubを使っていく運びになりました。

やりたいこと

特定のリポジトリからpushするときだけは勝手に別のgithubアカウントのリポジトリにしてくれる。

やったこと

githubアカウントを作る

もう一つのgithubアカウントを作ります。普通に。

sshキーを登録する

新しく作ったアカウントのために新しくsshキーを作成します。

$ ls ~/.ssh
id_rsa  id_rsa.pub #普段使いのやつ

$ ssh-keygen -t rsa -C hoge@hoge.com -f fugafuga_rsa
#パスフレーズなどは適当に。ファイル名は既存の鍵と被って上書きしないように。

githubから鍵を登録します。 fugafuga_rsa.pubgithubに登録。

githubリポジトリを作成

作る。

configの設定

$ vi ~/.ssh/config

Host github.com-for-English
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/fugafuga_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes

を追加。(ここら編怪しいです。)

git clone

$ git clone git@github.com:English/practice/listening.gitとするところを $ git clone git@github.com-for-English:English/practice/listening.gitとする。

user情報を変更

このままだと、普段のアカウントのままなので、

$ git config --local user.name "アカウント名"
$ git config --local user.email "メールアドレス"

とする。

commit $ push

これで晴れてremoteにpushできました〜

苦労したぜ…