반응형
오프라인에서 작업이 필요한 경우, 이때 git에 대한 모든 브랜치 및 commit을 받고 싶을 수 있다.
이때 두가지 방법이 이다.
mirror
git clone --mirror <repository_url>
mirror 옵션은 저장소의 모든 브랜치와 커밋 기록을 로컬에 그대로 복제하여 오프라인에서도 모든 브랜치에 접근 가능하게 한다.
--mirror 옵션을 사용하면 원격 저장소와의 설정까지 포함하여 완전한 복제가 이루어지며, 이후 필요에 따라 모든 브랜치의 커밋을 자유롭게 체크아웃하고 열람할 수 있습니다.
no-single-branch
git clone --no-single-branch <repository_url>
이렇게 하면 모든 브랜치를 포함하여 복제되며, 이후에 개별 브랜치로 체크아웃하거나 탐색이 가능합니다.
차이점 요약
옵션설명복제되는 항목주 용도
옵션 | 설명 | 복제되는 항목 | 주 용도 |
--no-single-branch | 기본 브랜치 외에 모든 브랜치 복제 | 모든 브랜치와 커밋 기록만 가져옴 | 로컬에서 모든 브랜치를 확인하거나, 필요한 브랜치만 있는 복제본이 필요할 때 |
--mirror | 원본과 동일한 설정 포함한 완전 복제 | 모든 브랜치, 태그, 원격 URL 등 저장소 설정 전체 복제 | 서버와 동일한 복제본을 만들거나, 원격 설정을 포함한 완전한 복제가 필요할 때 |
즉, --no-single-branch는 브랜치와 커밋 기록만 복제하고, --mirror는 원본 저장소와 거의 동일한 복제본을 만든다는 차이점이 있습니다.
--mirror
- --mirror는 단순히 모든 브랜치를 가져오는 것보다 더 포괄적인 완전 복제입니다.
- 이 옵션을 사용하면 원본 저장소의 모든 브랜치, 모든 태그, 그리고 원격 설정까지 그대로 복제됩니다.
- 즉, --mirror 옵션은 원본 저장소를 그대로 복제하는 **"동일한 복사본"**을 만듭니다.
- 예를 들어, **원격 URL, Git의 설정, 모든 ref(브랜치, 태그, 원격 설정 포함)**이 복제됩니다.
- 이로 인해 --mirror를 사용해 복제한 저장소는 원본과 동일하게 push나 fetch를 할 수 있는 환경을 가지고 있어, 마치 동일한 복제 서버 역할을 합니다.
--no-single-branch
- 이 옵션은 모든 브랜치를 복제하도록 하는 옵션입니다.
- 기본적으로 git clone은 현재 활성화된 기본 브랜치(main이나 master 브랜치)만 가져옵니다. 그러나 --no-single-branch를 사용하면 저장소의 모든 브랜치를 한꺼번에 가져오게 됩니다.
- 이 옵션을 사용할 경우, 다른 원격 설정이나 데이터는 복사되지 않습니다.
- 즉, 저장소의 브랜치와 커밋 기록은 모두 복제되지만, 원격 저장소 설정이나 git push/fetch와 같은 원격 관련 정보는 가져오지 않습니다.
- 결과적으로 원격 URL 설정이나 추가적인 설정들은 복제되지 않는 일반적인 복제본이라고 생각하면 됩니다.
반응형
'Git' 카테고리의 다른 글
[Git] Git의 --bare 옵션: 무엇이고 언제 사용하는가? (0) | 2024.11.14 |
---|---|
[Git] github push error: RPC failed; result=22, HTTP code = 408 (0) | 2023.06.08 |
[Git] git commit 파일 내용 검색 (feat. git grep / log -G) (0) | 2023.01.09 |
[Git] old mode new mode (0) | 2021.09.27 |
[Git] remote (0) | 2021.08.10 |