Gitで fatal: remote origin already exists. というメッセージが出る場合
対処法
git remote add origin 〜
を実行してfatal: remote origin already exists.
が出た場合、git remote rm origin
でoriginを削除し、再度originを登録すればよい。
$ git remote rm origin $ git remote add origin git@github.com:ユーザ名/リポジトリ名.git $ git push -u origin master
整理
git remote add origin 〜
は.git/config
ファイルに [remote "origin"] の設定を追記するコマンドなので、すでに.git/config
ファイルに [remote "origin"] の設定が存在する場合は、(当たり前なのだが・・・)fatal: remote origin already exists.
となる。
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = ssh://git@github.com:ユーザ名/リポジトリ名.git fetch = +refs/heads/*:refs/remotes/origin/* $ git remote add origin git@github.com:ユーザ名/リポジトリ名.git fatal: remote origin already exists.
この状態でgit remote rm origin
すると、.git/config
ファイルの [remote "origin”] の設定が削除される。
$ git remote rm origin $ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true
[remote "origin"] の設定を削除後にgit remote add origin 〜
を実行すると、その設定が.git/config
ファイルに追記される。
$ git remote add origin git@github.com:ユーザ名/リポジトリ名.git $ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = git@github.com:ユーザ名/リポジトリ名.git fetch = +refs/heads/*:refs/remotes/origin/*
.git/config
ファイルにremote名(origin)やリモートレポジトリのURLが指定できていれば、git push
できる。
その他
.git/config
ファイルにリモートリポジトリを複数登録してある場合(下記の例では"origin"と"heroku")は、下記のように設定される。
$ cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = git@github.com:ユーザ名/リポジトリ名.git fetch = +refs/heads/*:refs/remotes/origin/* [remote "heroku"] url = git@heroku.com:アプリケーション名.git fetch = +refs/heads/*:refs/remotes/heroku/*
リモートリポジトリの一覧を表示する。
$ git remote heroku origin $ git remote -v heroku git@heroku.com:アプリケーション名.git (fetch) heroku git@heroku.com:アプリケーション名.git (push) origin git@github.com:ユーザ名/リポジトリ名.git (fetch) origin git@github.com:ユーザ名/リポジトリ名.git (push)