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