Ruby, Rails, Git再入門 git remote addの操作を取り消す方法

sleeping cat

photo credit: Ella Mullins via photopin cc

やあ (´・ω・`)
ようこそバーボンハウスへ。
このページはサービスだから、まず見て落ちついて欲しい。

うん、「また」なんだ。済まない。
ちぇんわの顔も三度までって言うしね、謝って許してもらおうとも思っていない。

でも、このタイトルを見たとき、君は、きっと言葉では言い表せない
「またミスったのかYo!」みたいなものを感じてくれたと思う。
殺伐とした世の中で、そういう気持ちを忘れないで欲しい
そう思って、このタイトルで作ったんだ。

じゃあ、ブラウザを閉じる以外の注文を聞こうか。

お前どんだけコマンドミスしてんのよ、って思った? うん、そうなんだ。めちゃくちゃミスってんだ。そもそもあれだ、Ruby on Rails チュートリアル:実例を使って Rails を学ぼうで色々気になる誤記を見つけたから、pull requestで修正を送ろうとしたのが今回の発端であってだな…。まぁ、いいや。git remote addに失敗した際の対応方法を調べたので、手順を記載する。

git remote addに失敗する

$ git remote add upstream git//github.com/yasslab/railstutorial.jp.git
$ git fetch upstream
fatal: 'git//github.com/yasslab/railstutorial.jp.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

上記のように、remoteで指定したアドレスが誤っていると、エラーが出力される。そして、以下のように上書きはできない。

$ git remote add upstream git://github.com/yasslab/railstutorial.jp.git
fatal: remote upstream already exists.

helpで調べても、-fのような強制上書きオプションはない模様。

$ git remote add --help
usage: git remote add []  

    -f, --fetch           fetch the remote branches
    --tags                import all tags and associated objects when fetching
                          or do not fetch any tag at all (--no-tags)
    -t, --track   branch(es) to track
    -m, --master 
                          master branch
    --mirror[=]
                          set up remote as a mirror to push to or fetch from

git remote addを取り消す

まず、現在何が設定されているのか確認する。

$ git remote -v
origin  https://github.com/changeworld/railstutorial.jp.git (fetch)
origin  https://github.com/changeworld/railstutorial.jp.git (push)
upstream  git//github.com/yasslab/railstutorial.jp.git (fetch)
upstream  git//github.com/yasslab/railstutorial.jp.git (push)

設定を確認したら、削除したい設定をgit remote rmで指定する。

$ git remote rm upstream

これで再度git remote addで指定できるので、やり直せば良い。

$ git remote add upstream git://github.com/yasslab/railstutorial.jp.git
$ git fetch upstream