이전에 작업했던 프로젝트의 Repository(branch 포함)를 그대로 옮기면서 commit한 기록까지 같이 옮기고 싶은 경우
다음의 git 명령어를 사용하여 쉽게 옮길 수 있다!
※ git명령어를 사용하기 때문에 gitlab, github 등에 제한없이 자유자재로 이동 가능하다.
💡 1. git clone --mirror 옵션을 사용해서 원본 저장소의 모든 기록을 clone 한다.
git clone --mirror {원본 저장소 주소}
💡 2. clone한 디렉토리로 이동한다.
cd {원본 저장소 이름}.git
💡 3. 이동할 원격 저장소 경로를 입력한다.
git remote set-url --push origin {이동할 원격 저장소 주소}
💡 4. 원격 저장소로 push한다.
git push --mirror
git push --mirror 을 진행하면 원격 저장소에 같은 이름으로 branch가 생성되면서 원본 저장소의 코드와 commit 기록 등 모든 내용의 복사가 진행된다.
※ 만약, 100MB가 넘는 파일이 존재할 경우 (feat. github)
gitlab과 달리 github에서는 원격 저장소에 100MB가 넘는 파일을 push 할 수가 없다.(Error 발생)
100MB가 넘는 파일들을 제거하는 수작업을 진행한 후 올릴수도 있겠지만 다음과 같은 방법으로 간단하게 옮길 수 있다.
1. 링크에서 jar 파일을 다운 받는다.
2. 이동할 Repository 폴더와 동일한 경로에 jar 파일을 위치시킨다
3. 아래의 명령어를 실행하여 100MB가 넘는 파일을 올린 commit 이력을 삭제한다.
java -jar bfg-x.x.x.jar --strip-blobs-bigger-than 100M
이 때 bfg 버전과 동일한 값으로 명령어를 입력한다.
4. git push --mirror 명령어를 입력하여 원격 저장소로 push 한다.
git push --mirror
git을 사용할 때 보통 원격 저장소로 올리고(add / commit / push) 내려 받는(pull) 명령어를 주로 사용하는데
이외에도 mirror와 같은 다양한 옵션들이 있다. 필요한 옵션들은 반드시 숙지하자!
mirror 옵션을 몰랐을 때는 repository를 옮기려고 모든 브랜치들을 zip으로 내려받아 옮기는 비효율적인 작업을 한 경험이 있는데 git 명령어로 손쉽게 옮길 수 있었다.
또한, jar 파일을 이용하여 100MB가 넘는 파일이 존재할 경우 github에 올리는 방법도 배울 수 있었다.
※ 단, 100MB 파일을 올린 commit 이력은 삭제된다.
'Git' 카테고리의 다른 글
[Git] 프로젝트간 git 사용 (feat. branch) (0) | 2021.01.05 |
---|---|
[Git] About Git (0) | 2021.01.02 |
댓글