Programming

[git] 저장소 이동하기

정윤아빠 입니다. 2021. 9. 15. 15:55
반응형

서버를 변경하거나, 서버가 터졌을 때 저장소 이동이 필요해진다.

이를 위한 과정이다.

 

1. 기존 저장소 복사

우선 필요한 것은 기존 저장소 복사. 저장소의 내용을 다운로드 받는다.

깃을 이용하는 것이 좋은데, 나는 소스트리를 사용하고 있으니 소스트리의 깃 터미널을 사용한다.

 

소스트리의 아무 프로젝트에서 깃 터미널을 실행한다.

 

cd 명령어를 사용하여 원하는 로컬 경로로 이동

 

git clone 명령어를 사용하여 다운로드 받는다.

--mirror 옵션은 기존의 tracking branches, notes, tags 등 모든 것을 그대로 복제하라는 명령이다.

git clone --mirror http://XXXXXXXXXXX/project.git

다운로드가 완료되면 생성된 폴더로 이동한다.

cd project.git

 

2. 새 저장소 url 설정

현재 로컬 폴더의 원격 저장소를 변경하여 설정한다.

깃 허브에 저장한다고 가정하면...

git remote set-url --push origin http://github.com/test/test/git

 

3. 새 저장소에 push

로벌 폴더의 내용을 새 저장소에 push 한다.

git push --mirror

완료되면 저장소에 들어가서 내용을 확인하다.

터미널에서 확인하는 방법도 있다.

git remote -v

 

위 내용은 새 저장소를 새로 만들어서 옮긴다는 생각으로 진행한 과정이다.

이미 존재하는 저장소에 이동하는 경우, 기존 내용이 없어지고 복제된 데이터로 변경될 수 있다.

 

4. RPC failed 오류

RPF fariled;

fetch-pack: unexpected disconnect while reading sideband packet

등의 오류가 발생할 수 있다. 아마도 용량이 커서인 것 같다.

git clone --mirror http://XXXXXXXXXXX/project.git --depth 1

depth 옵션을 이용하여 다운받으면 대부분 성공한다.

cd project.git
git fetch --unshallow

다운받은 이후 폴더로 이동하여 fetch 명령어로 남은 내용을 다운받는다.

위의 fetch 명령을 수행하는 과정에서도 문제가 발생할 경우

git fetch --depth=100
git fetch --depth=200
git fetch --depth=300

위와 같이 depth 값을 높여가면서 부분적으로 다운받다 보면 완료 가능하다.

반응형