본문 바로가기
BackEnd/Server

[Git] Github 저장소 미러링하기

by 푸고배 2021. 6. 2.

기존의 저장소를 다른 저장소로 옮기고 싶은 경우가 있다.

fork를 이용하는 방법도 있지만, 기존의 환경(branch, commit 이력 등)을 유지하며 옮기고 싶은 경우

git clone --mirror command를 사용하면 된다.

git clone --bare [복사할 저장소의 git 주소]
cd [새로 생성된 폴더(git repository name)]
git push --mirror [새로운 저장소의 git 주소]

 

이후 저장소 연결을 새로운 저장소로 변경해주면 된다.

git remote set-url origin [새로운 저장소 주소]

 

git의 clone은 --mirror 뿐만 아니라 여러가지 구성 옵션을 가지고 있다.

 

git clone --branch

원격 HEAD가 가리키는 분기(대개 마스터 분기) 대신 복제할 특정 분기를 지정할 수 있다.

또한 동일한 효과를 위해 분기 대신 태그를 전달할 수 있다.

git clone --branch new_feature git://remoterepository.git

 

위의 예제는 원격 Git 저장소에서 new_feature 분기만 복제한다. 이는 저장소의 HEAD ref 파일을 다운로드하고 필요한 ref를 추가로 가져와야하는 시간을 절약할 수 있다.

 

git clone --bare

bare git repository를 만든다.

새 디렉토리를 생성하고, 디렉토리/.git에 관리 파일을 배치하는 대신 디렉토리 자체를 $GIT_DIR로 만든다.

이는 작업트리를 확인할 수 있는 곳이 없기 때문에 check out(브랜치 지정)을 하지 않는다는 것을 의미한다.

또한 원격지의 분기헤드는 refs/remote/origin/ 에 매핑하지 않고 해당 로컬 분기 헤드에 직접 복사된다. 이 옵션을 사용하면 원격 추적 분기나 관련 구성 변수가 생성되지 않는다.

 

git clone --mirror

git clone --bare와 마찬가지로 미러링된 clone에는 모든 원격 분기 및 태그가 포함되지만 모든 로컬 참조는 가져올 때마다 덮어 쓰여 지므로 항상 원본 저장소와 동일하다.

 

git clone --no-checkout/-n

복제가 완료된 이후에 HEAD를 check out(브랜치를 지정)하지 않는다.

 

 

git clone - CURVC ALM Space - Confluence

페이지 … ALM Space Home Open Source Product Git 가이드 1. Git 시작하기 Git 저장소 배너의 맨 끝으로 배너의 맨 처음으로 git clone 메타 데이터의 끝으로 건너뛰기 황희연 대표님이 작성, 2019-06-15에 최종 변

confluence.curvc.com

 

Git - git-clone Documentation

In general, URLs contain information about the transport protocol, the address of the remote server, and the path to the repository. Depending on the transport protocol, some of this information may be absent. Git supports ssh, git, http, and https protoco

git-scm.com

 

 

반응형

댓글