Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

Git 顯示「remote origin already exists」?修改前先讀現有 URL

這只證明本機名稱 origin 已設定。先核對 fetch、push 與追蹤用途,再決定保留、改 URL、改名或新增 remote。

原創示意圖:把既有的 origin 對應為保留、改 URL、改名或新增 remote 四種意圖。
原創示意圖:檢查現況後只選擇一種 remote 操作。 Watch at Ease

不要因本機名稱衝突刪除 .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 以便回復。

原創示意圖:分別核對 fetch URL、push URL 與分支追蹤證據。
原創示意圖:修改後驗證每個 remote 角色。 Watch at Ease