githubから httpsでcloneしてしまったリポジトリの originを sshに変更する

Git

修正する予定がなかったので httpsを経由して匿名のままリポジトリを githubから cloneしたんだけど、つい大事な修正をコミットしてしまい pushしなければならなくなったので originを ssh経由に変更したい、そんなとき。

現在の originがどうなっているか確認する

git remote -v と入力する。

$ git remote -v
origin  https://github.com/walbrix/oscar.git (fetch)
origin  https://github.com/walbrix/oscar.git (push)

originへのアクセスがHTTPS経由になっている。この状態でもユーザー名・パスワードを設定すれば pushできるが、スマートでない。

originのURLを変更する

git remote set-urlコマンドで originを変更する。github側アカウントには ~/.ssh/id_rsa.pubの内容が追加されているものとする。

git remote set-url origin git@github.com:walbrix/oscar.git

変更できているか確認

$ git remote -v
origin  git@github.com:walbrix/oscar.git (fetch)
origin  git@github.com:walbrix/oscar.git (push)

試しに git pullしてみる

$ git pull
Already up-to-date.

おかしなことにはなっていないようなので、ローカルのコミットをpushする。

$ git push
Counting objects: 9, done.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 488 bytes, done.
Total 5 (delta 4), reused 0 (delta 0)
To git@github.com:walbrix/oscar.git
   c223b93..815dac3  master -> master

めでたく修正を githubにアップロードできた。

参考

Changing a remote's URL(GitHub Help)

同じカテゴリの記事

100MB超のファイルをコミットしてしまい githubに pushを拒否された時 2013年10月17日
公開してはいけないファイルを誤ってgitに追加してしまった場合 2009年1月1日
Subversion上にあるリポジトリをgithubへ公開する 2008年10月21日

お勧めカテゴリ

英語でアニメ観ようず
なじみ深い日本製アニメの英語版DVDで、字幕と音声から英語を学びましょうという趣旨のシリーズ記事です。
ScalaのようでJavaだけど少しScalaなJSON API
Scalaと Spring Frameworkを使って REST的なJSON APIを実装してみましょう。
ドクジリアン柔術少女 すから☆ぱいそん
代表 嶋田大貴のブログです。写真は神仏に見せ金をはたらく罰当たりの図