Git에서 리모트 저장소(remote repository)를 다른 주소 URL로 변경하고자 합니다. 예를들어 두 개의 git 리모트 저장소 있는 경우 한 쪽에서 다른 쪽으로 바꾸는 경우가 있겠죠.


! 언제 리모트 저장소 변경이 필요한가새롭게 remote repository를 생성한 경우가 있을 수 있습니다. 예를들어 새로운 계정으로 repository를 생성했는데 앞으로는 이 계정을 사용해 형상관리를 하겠다라고 한다면 기존의 소스들 모두 해당 계정의 새로운 저장소로 주소를 바꿔야 할 수 있겠죠.

- 기존 주소 : https://github.com/testA/my.git
- 새로운 주소 : https://github.com/testB/your.git

예를 들자면 위의 기존에서 새로운 주소로 변경하고자 한다 생각하면 될 것 같습니다.



# Git 저장소 주소 repository 변경하기일단 git 저장소의 소스들이 모두 라이브되어 서비스 중이라면? 더더욱 조심해야겠죠. 방법이 간단할지라도 더욱 신중을 기해야하는 것이 맞습니다. (모든 소스를 백업 해두거나 이전 리포지토리를 나중에 삭제하는 것도 좋은 방법!)

저장소 변경을 위해서 사용할 방법은 바로 git remote입니다.

git remote는 새로운 저장소를 추가하거나 변경할 수 있습니다. 간단한 명령어는 아래와 같습니다.

git remote set-url origin <새로운GITURL>


방법은 간단해보입니다. 만약 위의 새로운 주소를 사용하여 바꾼다면 아래처럼 사용하면 될 것입니다.
$ git remote set-url origin https://github.com/testB/your.git

$ git config --list

git config --list 명령어는 현재 설정된 모든 내용을 리스트로 보여줍니다. 리스트에서 remote.origin.url을 찾아 주소가 바뀌었는지 확인해봅니다.
$ git config --list
.
.
remote.origin.url=https://github.com/testB/your.git

위와 같이 나온다면 정상적으로 바뀐 것입니다. 아니면 git remote -v를 사용할 수도 있습니다.
$ git remote -v

origin https://github.com/testB/your.git (fetch)
origin https://github.com/testB/your.git (push)

역시 바뀐 주소가 출력되어야 하겠습니다.


! 리모트 저장소 변경 후 알아야 할 사항
일단 저장소 주소만 바뀌었을 뿐 실제로 remote 서버와 동기화가 이루어지지 않았습니다. 이때 동기화하는 방법으로 아래의 명령어를 사용할 수 있습니다.
$ git remote update origin --prune

해당 명령어는 리모트 주소와 동기화를 수행합니다. 이때 여러가지 케이스가 나타날 수 있으며 에러가 발생할 수도 있습니다. 현재의 저장소의 소스와 동기화할 리모트 소스가 서로 상이한 경우일 수도 있고 아니면 새로운 리모트 저장소에 해당하는 브랜치가 없는 경우일 수도 있습니다.


여기까지 모든 방법을 알아봤습니다. 앞에도 언급했지만 실제 라이브 서비스 되는 경우라면 더욱 신중하게 단계별로 진행하시기 바라며 기존 repository를 미리 삭제하거나 안전하게 백업 후 별도 보관 후에 작업하는 것이 좋겠습니다.