テクノロジー · 実用ガイド
Gitの「remote origin already exists」:変更前に既存URLを読む
このerrorが証明するのはlocal名originが設定済みということだけです。fetch、push、trackingの役割を確認してから選択します。

local名の衝突だけで.gitを削除したりforce-pushしません。すべてのURLとoriginの意図を先に記録します。
repositoryと全URLを記録する
root、current branch、git remote -v、originの全fetch URLと全push URLを記録します。複数URLを見落とさないようget-url --allとpush形式を使います。
originの役割を一文にする
現在の協力remoteを維持、新しい宛先へ移行、旧remoteをupstreamとして保存、別の公開remoteを追加、のどれかを選びます。errorは選択しません。
一つの変更を選ぶ
URLが正しければ維持、同じ役割の移動はset-url、旧役割が必要ならrename、fetchと公開が別なら新remoteです。一つのremoteのfetch/push先は同じ場所を指すべきです。
trackingと履歴を守る
remote削除はlocal設定のlink解除だけです。.git削除はlocal履歴と設定を失います。force-pushはref更新であり名前衝突の修復ではありません。
network書込み前に検証する
変更後に全URLとbranch trackingを再確認し、想定名へread-only fetchまたはls-remoteを実行します。認証やrepository-not-foundは別問題です。
元のworkflowを試す
元のtutorial、push、deployを再実行し、意図したrepositoryへrefが届くことを確認します。rollback用に旧URLを記録します。
