新しくリモートリポジトリを追加するために投入したgit remote add でerror: remote origin already exists. の解決方法 についてまとめました。

Adding a remote repository で紹介されているページの解説になります。

前提
  1. 新しくリモートリポジトリを追加するには、git remote addが必要です(以下、原文)
  2. To add a new remote, use the git remote add command on the terminal, in the directory your repository is stored at.

error: remote origin already exists. のエラーログ

1
2
3
user@user MINGW64 ~/docker_xxx (main)
$ git remote add origin git@github.com:hoge/docker_xxx.git
error: remote origin already exists.

Line#3 のとおり、error: remote origin already exists. で怒られました。(#^ω^)

解決方法

Removing a remote repositoryのとおり以下の2ステップです。

STEP1. git remote rm origin を投入
STEP2. 再度、git remote add originを投入

1
2
3
4
5
user@user MINGW64 ~/docker_xxx (main)
$ git remote rm origin

user@user MINGW64 ~/docker_xxx (main)
$ git remote add origin git@github.com:hoge/docker_xxx.git

git push origin main でリモートに追加

無事にGitHubへpushできました。

1
2
3
4
5
6
7
8
9
10
11
12
13
user@user MINGW64 ~/docker_xxx (main)
$ git push origin main
Enumerating objects: 592, done.
Counting objects: 100% (592/592), done.
Delta compression using up to 8 threads
Compressing objects: 100% (549/549), done.
Writing objects: 100% (592/592), 16.12 MiB | 674.00 KiB/s, done.
Total 592 (delta 313), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (313/313), done.
To github.com:hoge/docker_xxx.git
 * [new branch]      main -> main

user@user MINGW64 ~/docker_xxx (main)

.git/config について

解説
  1. git remote add origin ~は.git/configファイルに[remote "origin"]を設定するコマンドです。従って、これを一旦、削除すれば追加(add)できます。
  2. git remote rm はサーバーからリモート リポジトリを削除しません。リモートとその参照をローカル リポジトリから削除するだけです。

.git/config の中身を見る

1
2
3
4
5
6
7
8
9
10
11
12
user@user MINGW64 ~/docker_xxx (main)
$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[remote "origin"]
        url = git@github.com:hoge/docker_xxx.git
        fetch = +refs/heads/*:refs/remotes/origin/*