Gitのorigin重複エラー対処法

冒頭まとめ git remote add origin ...で次のエラーが出たら、同じ名前のリモートが既に登録されています。リモートは、取得先や送信先のリポジトリに付ける名前です。 error: remote origin already exists. まず登録済みの名前とURLを確認します。 git remote -v URLが目的のものなら追加し直す必要はありません。既存のoriginのURLを変えたいなら、addではなく次を使います。 git remote set-url origin https://github.com/OWNER/REPOSITORY.git URLは実際の接続先へ置き換えます。元の接続先も残したい場合は、後述する別名での追加を使ってください。 originは登録名であり接続エラーではない GitHubのリモート管理の公式説明は、このエラーを、ローカルリポジトリに存在する名前を再び追加しようとした状態と説明しています。 originは特別なURLやGitHub上のリポジトリ名ではなく、手元で接続先を識別する登録名です。別のURLを指定しても、同じ名前が使われていれば追加は拒否されます。 逆に、同じURLを違う名前で登録することもできます。エラーの判定対象はURLの一致ではなく、名前の重複です。 今回のGit 2.51.1による確認では、clone済みのリポジトリに再びoriginを追加すると、上記の文言と終了コード3になりました。失敗した追加操作の前後で、リポジトリの設定ファイルは変わっていませんでした。 URLの存在やアクセス権を確認する段階のエラーではありません。再試行やパスワード変更だけで、名前の重複がなくなるわけではありません。 登録済みのURLと作業場所を確認する 別のプロジェクトを操作していないかも含めて、現在の対象を確認します。 git rev-parse --show-toplevel git remote -v git remote get-url --all origin git remote get-url --push --all origin --show-toplevelは作業ディレクトリの最上位を表示します。get-urlの後半二つは、取得側と送信側のURLをそれぞれ確認する指定です。 通常の設定例では、git remote -vに次のように表示されます。 origin https://github.com/OWNER/REPOSITORY.git (fetch) origin https://github.com/OWNER/REPOSITORY.git (push) fetchは取得、pushは送信に使うURLです。二行あるだけで、originが二重登録されているという意味ではありません。 cloneの公式文書によると、cloneでは既定で複製元がoriginとして登録されます。clone後に、初期化済みのリポジトリ向けのremote add origin手順を繰り返せば、名前が重なります。clone --originなどで名前を指定した場合は、実際の一覧で判断します。 URLに認証情報が含まれている場合は、確認結果をそのまま公開しないでください。 URLの変更にはset-urlを使う 既存の接続先が誤っている、または同じリポジトリへのHTTPSとSSHを切り替えたい場合は、URLを変更します。 git remote set-url origin https://github.com/OWNER/REPOSITORY.git git remote -v Gitのremote公式文書には、既存リモートのURLを変更するset-urlが説明されています。今回の最小例でも、変更後のURLが表示され、現在のコミットとorigin/mainなどの追跡情報は残りました。 ...

2026年10月17日 · ErrorLog