
GitHub로 팀프로젝트를 진행할 때, 다른 팀원의 리포지토리에 연결하여 사용한 것을 내 리포지토리에 그대로 옮기고 싶을 때가 있다.
히스토리, commit 기록 등도 모두 복사해오려면 그냥 push 하는 것이 아닌, 다른 명령어를 사용해야한다.
git clone --mirror <원래 리포지토리 주소>
mirror 옵션을 사용하면 Git 저장소의 완전한 복사본을 생성할 수 있다. 모든 브렌치, 태그, 커밋 및 Git 객체들을 로컬로 복제한다. 단, 해당 옵션을 사용하면 로컬에서 원래 저장소로 다시 push 할 수 없다.
git cd <리포지토리 이름.git>
clone이 완료되면 리포지토리 이름.git 이라는 폴더가 생성되었을 것이다. 해당 폴더로 이동한다.
git remote set-url --push origin <새 리포지토리 주소>
새로운 리포지토리 주소에 연결한다. push 옵션을 사용하면 push 작업을 수행할 때 해당 주소로 데이터를 전송하게 된다.
git push --mirror
새로운 리포지토리에 push한다. 모든 히스토리까지 복제되었음을 볼 수 있다.