Watch at Ease세상을 읽고, 일상의 답을 찾다.

기술 · 실용 가이드

Git ‘remote origin already exists’: 변경 전에 기존 URL을 읽으세요

이 오류는 로컬 이름 origin이 이미 있다는 사실만 증명합니다. fetch, push, tracking 역할을 확인한 뒤 유지·변경·이름 변경·추가를 선택하세요.

오리지널 일러스트: 기존 origin을 유지, URL 변경, 이름 변경, 새 remote 추가라는 의도에 맞춰 정리한다.
오리지널 일러스트: 현재 상태를 확인한 뒤 remote 작업 하나를 선택한다. Watch at Ease

로컬 이름 충돌 때문에 .git을 삭제하거나 force-push하지 마세요. 모든 URL과 origin의 의도를 먼저 기록합니다.

repository와 모든 URL을 기록한다

root, 현재 branch, git remote -v, origin의 모든 fetch와 push URL을 기록합니다. 여러 URL을 놓치지 않도록 get-url --all과 push 형식을 사용하세요.

origin의 역할을 한 문장으로 정한다

현재 협업 remote 유지, 새 대상으로 이동, 기존 remote를 upstream으로 보존, 별도 게시 remote 추가 중 하나를 선택합니다. 오류 자체는 선택하지 않습니다.

한 가지 변경을 선택한다

URL이 맞으면 유지하고 같은 역할의 이동은 set-url, 기존 역할이 필요하면 rename, fetch와 게시가 다르면 새 remote를 추가합니다. 한 remote의 fetch/push는 같은 장소를 가리켜야 합니다.

tracking과 기록을 보호한다

remote 제거는 로컬 설정 연결만 끊습니다. .git 삭제는 로컬 기록과 설정을 지웁니다. force-push는 ref 업데이트 문제이지 이름 충돌 해결이 아닙니다.

네트워크 쓰기 전에 검증한다

변경 뒤 모든 URL과 branch tracking을 다시 읽고 예상 이름으로 read-only fetch 또는 ls-remote를 실행합니다. 인증과 repository-not-found는 별도 문제입니다.

원래 workflow를 시험한다

원래 tutorial, push 또는 배포 명령을 반복해 의도한 repository가 ref를 받았는지 확인하고 rollback을 위해 이전 URL을 기록합니다.

오리지널 일러스트: fetch URL, push URL, 브랜치 추적 근거를 각각 확인한다.
오리지널 일러스트: 수정 후 각 remote 역할을 검증한다. Watch at Ease