rcmdnk's blog
Last update

Fatal

昨日のVimでの凡ミス に引き続き、GitHubへpushしようとした時にエラーが出る凡ミス。

Sponsored Links

fatal: remote error

GitHubにある自分のレポジトリを取ってきて編集してpushしようとした時、

$ git push
fatal: remote error:
  You can't push to git://github.com/rcmdnk/brewall.git
  Use https://github.com/rcmdnk/brewall.git

こんな感じのエラーが。

やりたいことは、ssh([email protected]:rcmdnk/brewall.git)でやりとりすることなんですが、 httpsを使え、と言われています。

エラーをよく見れば分かる通り、どうやらcloneするときにsshではなくて、 gitプロトコル(git://github.com/rcmdnk/sentaku.git)を使って取ってきた様です。

$ git remote -v
origin  git://github.com/rcmdnk/brewall.git (fetch)
origin  git://github.com/rcmdnk/brewall.git (push)

remote -vするとやはりgitプロトコルになってます。 GitHubはgitプロトコルによるfetchは可能ですがpushは許可されて無い様で、 取ってこれるだけ取ってこれてpush出来ない除隊になります。

ので、単にレポジトリを取得し直すか、 すでに変更があってそのまま続けたいときは

$ git push
fatal: remote error:
You can't push to git://github.com/rcmdnk/brewall.git
Use https://github.com/rcmdnk/brewall.git
$ git remote set-url origin [email protected]:rcmdnk/brewall.git
$ git remote -v
origin  [email protected]:rcmdnk/brewall.git (fetch)
origin  [email protected]:rcmdnk/brewall.git (push)
$ git push
Everything up-to-date
$

と、remote set-url1 を使ってoriginのURLを変更してしまえばOK。

なんで起きるか

多分、直前にGNU screenをインストールしていて、 これをGitで取るのに、

$ git clone git://git.savannah.gnu.org/screen.git

とgitプロトコルを使うので2 コマンド履歴からgit cloneを探してきて適当に書き換えて使いまわそうとして、 screen用のコマンドからスタートしてプロトコルをそのまま放置したからかな、と。

なんにしろこれも結構何回も突き当たって毎回軽く悩んでたので、 いい加減、という意味でメモ書き。

Sponsored Links
  1. remote rmなどを使って、

    $ git remote rm origin
    $ git remote add origin [email protected]:rcmdnk/brewall.git
    $ git branch --set-upstream-to  remotes/origin/master
    

    としても同じような事になります。

  2. GNU Screen - Git Repositories [Savannah]

Sponsored Links

« Vim+NeoBundleでユーザー名やパスワードを聞かれる現象 Vimで気づいたらすべて小文字になる現象 »