Git:Clone
Bare와 Mirror의 차이점
-
git clone origin-url (non-bare)
- 모든 태그, 원격 브랜치 origin/master 를 추적(tracking) 하는 지역 브랜치 master (HEAD) 그리고, 원격 브랜치 origin/next, origiin/pu 그리고 origin/maint 를 얻어온다. 그 추적 브랜치(the tracking branch)는 git fetch origin 과 같은 작업을 수행할 경우에 설정(set up)되고, 그 작업을 통해서 예상하는 것을 가져올 것이다. 클론된 원격 저장소내의 모든 원격 브랜치와 기타 refs 는 완전히 무시된다.
-
git clone --bare origin-url
- 모든 태그, 지역 브랜치 master, next, pu 그리고 maint 를 얻어오고, 원격 추적 브랜치는 제외한다. 즉 모든 브랜치는 현재 상태로 복사되고, 다시 가져오기를 하지 않도록, 완전히 독립적으로 설정된다. 모든 원격 브랜치(복사된 원격내에서)와 기타 refs 는 완전히 무시된다.
-
git clone --mirror origin-url
- 모든 마지막 refs 가 현재 상태로 복사될 것이다. 모든 태그, 지역 브랜치 master (HEAD), next, pu 그리고 maint, 원격 브랜치 devA/master 그리고 devB/master, 기타 ref refs/foo/bar 그리고 refs/foo/baz 를 가져올 것이다. 모든 것은 복사된 원격에서 존재하는 상태와 동일할 것이다. 원격 추적은 git remote update 를 실행하면 마치 mirror 를 지우고 다시 복사한 것처럼(recloned) 모든 refs 가 origin 으로부터 덮어쓰여지도록 설정된다. 문서에서 처음부터 말한 것 처럼 이것은 mirror 이다. 이것은 기능적으로 원본과 교환이 가능한, 복사(copy)와 동일하다.
Troubleshooting
server certificate verification failed
server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 이 경우, 아래와 같이 git-config를 적용하면 된다.
또는 아래와 같이 환경변수 설정 후 clone을 진행하면 된다.