본문 바로가기
Git

[Git] Git Repository 옮기기

by 희구리 2021. 1. 4.

이전에 작업했던 프로젝트의 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)

100MB가 초과하는 파일(data/books.pkl) 존재시 error 발생

gitlab과 달리 github에서는 원격 저장소에 100MB가 넘는 파일을 push 할 수가 없다.(Error 발생)

 

100MB가 넘는 파일들을 제거하는 수작업을 진행한 후 올릴수도 있겠지만 다음과 같은 방법으로 간단하게 옮길 수 있다.

 

1. 링크에서 jar 파일을 다운 받는다.

우측 빨간색 네모를 클릭하여 다운

 

2. 이동할 Repository 폴더와 동일한 경로에 jar 파일을 위치시킨다

jar와 이동할 Repo 위치

 

3. 아래의 명령어를 실행하여 100MB가 넘는 파일을 올린 commit 이력을 삭제한다.

java -jar bfg-x.x.x.jar --strip-blobs-bigger-than 100M

bfg 버전이 1.13.1 일 경우

이 때 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

댓글