기존에 작업하던 Repository에서 새로운 Repository로 옮기고 싶을 때가 있다. 간단하게는 기존 코드를 새 Repository에 복사해서 푸쉬하면 끝이지만, 그동안의 커밋 로그까지 모두 옮기고 싶을 경우에는 git clone --mirror
명령어를 사용해야 한다.
git clone
명령어와 함께 --mirror
옵션을 이용한다. 옵션뒤에 Repository 주소를 넣어서 Repository를 복사한다.
git clone --mirror <기존 Repository 주소>
명령어를 실행하고 나면 복사하려는 Repository의 이름으로 .git 디렉토리가 생기는데, 해당 디렉토리의 이름을 .git
으로 바꿔준다.
mv <기존 Repository.git> .git
다음으로는 새롭게 옮겨줄 Repository 주소를 지정해준다.
git remote set-url origin <새로 옮겨줄 Repository 주소>
git push
명령어를 이용한다. 옵션으로 --mirror
를 사용하면 된다.
git push --mirror
예전엔 권한이 있었지만 지금은 권한이 없어 로컬에만 존재하는 Repository가 있을 수 있는데, 이 때는 Repository 주소를 사용할 수가 없다.
이럴 때는 Repository 루트 디렉토리에 존재하는 .git 디렉토리를 지정해주면 된다.
git clone --mirror ./.git