このブログをご覧のみなさん、こんにちは。

やあ (´・ω・`)
ようこそバーボンハウスへ。
このページはサービスだから、まず見て落ちついて欲しい。
うん、「また」なんだ。済まない。
ちぇんわの顔も三度までって言うしね、謝って許してもらおうとも思っていない。
でも、このタイトルを見たとき、君は、きっと言葉では言い表せない
「またミスったのか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 [<options>] <name> <url>
    -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>  branch(es) to track
    -m, --master <branch>
                          master branch
    --mirror[=<push|fetch>]
                          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