Git
[Git] bare / mirror (+fork) 옵션 차이
bornsoon
2025. 3. 25. 00:23
[--bare] & [--mirror] 옵션
- 공통점:
- 둘 다 Git에서 원격 저장소를 복제할 때 사용됨
- 차이점:
- 작업 디레토리의 유무!
1. --bare 옵션
- git clone --bare <원격저장소URL>
- 작업 디렉토리(working directory) 없이 Git 저장소의 모든 데이터를 복사함
- .git 폴더만 있는 상태로 저장되며, 일반적으로 원격 저장소를 만들 때 사용됨
- 로컬에서 코드를 수정하거나 git commit 등의 작업을 할 수 없음
- 주로 중앙 조장소(예: origin)을 운영하기 위한 용도로 사용됨
2. --mirror 옵션
- git clone --mirror <원격저장소URL>
- --bare와 비슷하지만, 모든 브랜치, 태그, 원격 설정(remote 설정)을 그대로 유지함
- 원격 저장소를 완전히 복제하는 용도로 사용됨
- 원본 저장소와 동기화할 때 유용함 (git fetch --all로 최신 상태 유지 가능)
- 기본적으로 fetch 시 --prune이 적용되어, 원본에서 삭제된 브랜치나 태그도 로컬에서 자동 삭제됨
3. --fork 옵션
- GitHub에서 제공하는 기능으로, 다른 사람이 관리하는 저장소를 복사해서 내 계정에 새로운 저장소를 생성하는 것
- 원본 저장소와 연결되지 않으며, 기본적으로 독립적인 프로젝트가 됨
- 원본 저장소의 변경 사항을 가져오려면 Upstream 설정을 해야 함
옵션 | git clone --mirror | git clone --bare | Fork (GitHub) |
작업 디렉토리 (코드 파일) | 없음 | 없음 | 있음 |
브랜치 & 태그 | 모두 포함 | 모두 포함 | 기본적으로 포함 |
원격(remote) 정보 | 원본과 동일 유지 | 없음 | 변경됨 (원본과 독립) |
삭제된 브랜치 반영 | 자동 삭제됨 | 수동 삭제 필요 | 삭제되지 않음 |
원본과 자동 동기화 | fetch로 자동 동기화 | 직접 관리 필요 | Upstream 설정 후 수동 동기화 |
사용 목적 | 원본 저장소와 완전한 복제 | 중앙 원격 저장소 용도 | 독립적인 개발 및 오픈소스 기여 |
주로 사용되는 곳 | 백업, 미러 서버 | 공유 저장소 (원격) | GitHub, GitLab |
간단히 요약하자면,
👉 --bare : 중앙 원격 저장소(origin)로 사용할 Git 저장소가 필요할 때
(주로 중앙 원격 저장소를 운영하기 위한 목적)
👉 --mirror : 원본 저장소를 그대로 복사하고, 원본과 자동 동기화할 때
(주로 완전한 복제 및 동기화를 위한 목적)
728x90