특정 레포지토리에서 프로젝트를 작업하다 새로운 레포지토리로 옮기고 싶을 때가 있다.
새로운 레포지토리로 옮길 때 브랜치의 커밋 기록까지 함께 옮기는 방법에 대해서 알아보자.
- 모든 branch 별 commit 및 tag 내용 그대로 복사된다.
- github 사용자는 그대로 연결된다.
- private 레포지토리도 가능하다.
임의 작업공간(폴더)에서 터미널을 열어주고 아래 명령어를 순서대로 진행해보자.
$ git clone --mirror { git repository 주소 }
# 만약 특정 브랜치만 가져오고 싶다면
$ git clone -b { 브랜치명 } --single-branch --mirror { git repository 주소 }
# clone을 정상적으로 완료됐다면 repository명.git 파일이 생성되어 있을 것이다.
$ cd { repository명.git }
# 위 명령으로 경로 이동 후 .git으로 변경한 디렉토리에서 아래 명령을 실행
$ git remote set-url origin { 새로운 repository 주소 }
# .git으로 변경한 디렉토리에서 아래 명령을 실행
# 아래의 명령을 실행하게 되면 새로운 repository로 push 된다.
$ git push --mirror
참고한 자료
https://gist.github.com/Kyungpyo-Kim/d0ce37d38a05dba82c75ed80979c3999