기존의 저장소를 다른 저장소로 옮기고 싶은 경우가 있다.
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(브랜치를 지정)하지 않는다.
'BackEnd > Server' 카테고리의 다른 글
[JMeter] Apache JMeter Sampler 종류 (0) | 2021.08.03 |
---|---|
[JMeter] 부하테스트와 성능 측정 소프트웨어 (0) | 2021.08.02 |
[Git] 프로젝트 내부 코드 라인 수 조회하기 (0) | 2021.05.27 |
[Docker] MYSQL Database 로컬 위치로 백업하기 (0) | 2021.05.18 |
[Ubuntu 18.04.5] PHP에서 Anaconda 환경변수 사용하기 (0) | 2021.03.23 |
댓글