질문 : git clone --mirror와 git clone --bare의 차이점은 무엇입니까?
git clone 도움말 페이지에는 --mirror
.
원격 저장소의 미러를 설정합니다. 이것은 --bare
의미합니다.
하지만 방법에 대해 자세히 설명하지 않습니다 --mirror
복제가 다른 --bare
클론.
답변
차이점은 --mirror
사용하면 모든 참조 가있는 그대로 복사 된다는 것입니다 . 이것은 모든 것을 의미합니다 : 원격 추적 브랜치, 노트, 참조 / 원본 / * (필터 브랜치의 백업). 복제 된 저장소에는 모든 것이 있습니다. 또한 원격 업데이트가 원본에서 모든 것을 다시 가져 오도록 설정되어 있습니다 (복사 된 참조를 덮어 씁니다). 아이디어는 실제로 저장소를 미러링하고 전체 복사본을 갖도록하는 것입니다. 예를 들어 중앙 저장소를 여러 위치에 호스팅하거나 백업 할 수 있습니다. 훨씬 더 우아한 git 방식을 제외하고는 단순히 repo를 복사하는 것을 생각하십시오.
새 문서에는 다음과 같은 내용이 모두 나와 있습니다.
--mirror
소스 저장소의 미러를 설정합니다. 이것은 --bare
의미합니다. 비교하기 --bare
, --mirror
뿐만 아니라 대상의 로컬 브랜치에 대한 소스의 로컬 브랜치 매핑 그것은 refspec 구성 위로 설정 (원격 지점, 메모 등을 포함한) 모든 심판 매핑 이러한 모든 심판은 덮어 것을 대상 저장소의 git remote update
내 원래 대답은 베어 클론과 일반 (비 베어) 클론의 차이점에 대해서도 언급했습니다. 비 베어 클론은 원격 추적 분기를 설정하고 HEAD
에 대한 로컬 분기 만 생성하고 베어 클론은 분기를 직접 복사합니다.
origin에 몇 가지 분기 ( master (HEAD)
, next
, pu
및 maint
), 일부 태그 ( v1
, v2
, v3
), 일부 원격 분기 ( devA/master
, devB/master
) 및 일부 다른 참조 ( refs/foo/bar
, refs/foo/baz
, 메모, 숨김, 다른 개발자의 네임 스페이스 일 수 있습니다.
git clone origin-url
(non-bare) : 복사 된 모든 태그, 원격 분기origin/master
master (HEAD)
및 원격 분기origin/next
,origin/pu
및origin/maint
.git fetch origin
과 같은 작업을 수행하면 예상대로 가져 오도록 설정됩니다. 모든 원격 분기 (복제 된 원격의) 및 기타 참조는 완전히 무시됩니다.git clone --bare origin-url
: 복사 된 모든 태그, 로컬 브랜치master (HEAD)
,next
,pu
및maint
, 원격 추적 브랜치가 없습니다. 즉, 모든 분기는있는 그대로 복사되고 다시 가져올 필요없이 완전히 독립적으로 설정됩니다. 모든 원격 분기 (복제 된 원격의) 및 기타 참조는 완전히 무시됩니다.git clone --mirror origin-url
: 마지막 모든 참조는있는 그대로 복사됩니다. 모든 태그, 로컬 브랜치master (HEAD)
,next
,pu
및maint
, 원격 브랜치devA/master
및devB/master
, 기타 참조refs/foo/bar
및refs/foo/baz
있습니다. 모든 것이 복제 된 리모컨에 있던 그대로입니다. 원격 추적은git remote update
를 실행하면 마치 미러를 삭제하고 다시 실행 한 것처럼 원본에서 모든 참조를 덮어 쓰도록 설정됩니다. 문서가 원래 말했듯이 그것은 거울입니다. 기능적으로 동일한 사본이어야하며 원본과 교체 할 수 있습니다.
출처 : https://stackoverflow.com/questions/3959924/whats-the-difference-between-git-clone-mirror-and-git-clone-bare
'개발관련 > Git' 카테고리의 다른 글
.gitignore 및 "The following untracked working tree files would be overwritten by checkout" (0) | 2021.12.06 |
---|---|
Git에서 한 파일의 작업 복사본 수정을 취소하는 방법 (0) | 2021.12.05 |
Git에서 파일을 언 스테이징하는 두 가지 방법이 있는 이유 (0) | 2021.12.05 |
GitHub에서 커밋을 제거하는 방법 (0) | 2021.12.04 |
git cherry-pick을 중단 하는 방법 (0) | 2021.12.04 |