科技 · 實用指南
Git 顯示「remote origin already exists」?修改前先讀現有 URL
這只證明本機名稱 origin 已設定。先核對 fetch、push 與追蹤用途,再決定保留、改 URL、改名或新增 remote。

不要因本機名稱衝突刪除 .git 或強推。先記錄所有 URL,並說明 origin 在此 repository 的角色。
記錄 repository 與所有 URL
記錄根目錄、目前 branch、git remote -v,以及 origin 的所有 fetch 和 push URL。使用 get-url --all 與 push 形式,因為 remote -v 可能隱藏多 URL 細節。
說明 origin 應代表什麼
選擇保留協作 remote、移往新目的地、保留舊 remote 為 upstream,或新增獨立發佈 remote。錯誤本身不會選擇。
只做一種變更
URL 符合就保留;同一角色遷移用 set-url;舊角色有用則改名;fetch 與發佈來源不同就新增 remote。一個 remote 的 fetch 與 push URL 仍應指同一位置。
保護追蹤與歷史
移除 remote 只解除本機設定,不會刪除託管 repository。刪除 .git 會移除本機歷史與設定;強推也不解決名稱衝突。
寫入網路前驗證
變更後重讀 URL、檢查 branch tracking,再對預期名稱執行唯讀 fetch 或 ls-remote。認證或 repository-not-found 是不同問題。
測試原流程
重跑教程、push 或部署命令,確認預期 repository 收到目標 ref,並記錄舊 URL 以便回復。
