본문 바로가기

Git

[Git] Git의 --bare 옵션: 무엇이고 언제 사용하는가?

반응형

--bare 옵션이란?

--bare 옵션은 Git 리포지토리를 생성할 때 사용하는 옵션으로, 작업 디렉토리가 없는 순수한 버전 관리 데이터만 포함된 리포지토리를 생성합니다. --bare 리포지토리는 소스 코드 파일을 포함하지 않고, 커밋, 브랜치, 태그와 같은 Git 메타데이터만 보관하게 됩니다.

일반적인 Git 리포지토리 구조와는 달리, --bare 옵션을 사용해 생성된 리포지토리는 .git 폴더와 같은 형식 없이 루트 디렉토리에 바로 Git 데이터가 포함됩니다. 예를 들어, 일반 리포지토리가 myproject/.git/ 안에 Git 정보를 저장하는 반면, --bare 리포지토리는 myproject.git/ 형태로 생성됩니다.

--bare 옵션의 사용 목적

일반적으로 --bare 옵션은 협업 환경에서 원격 리포지토리를 구축할 때 사용됩니다. 특히 다음과 같은 상황에서 --bare 리포지토리가 필요합니다.

  1. 중앙 원격 리포지토리 생성: 여러 개발자가 동일한 리포지토리에서 작업할 때, 중앙 서버에 원격 리포지토리를 만들어 모든 변경 사항을 관리하고 공유하는 것이 중요합니다. --bare 리포지토리는 이러한 중앙 원격 리포지토리 역할을 수행할 수 있도록 합니다.
  2. 직접 파일 변경 방지: --bare 리포지토리는 작업 디렉토리가 없으므로 코드 파일을 직접 수정할 수 없습니다. 이는 원격 저장소에 실수로 코드를 변경하지 못하도록 하여 보다 안전하게 버전 관리를 수행할 수 있게 해줍니다.
  3. CI/CD 파이프라인 및 자동화: --bare 리포지토리는 종종 CI/CD 시스템에서 빌드 및 배포 파이프라인을 설정할 때 유용합니다. 원격 리포지토리로서의 역할만을 수행하므로, 빌드 과정 중에 코드 변경이 필요 없을 때 적합합니다.

--bare 리포지토리 생성 방법

다음 명령어를 통해 --bare 리포지토리를 생성할 수 있습니다.

git init --bare myproject.git

위 명령어는 myproject.git이라는 이름의 새로운 Git 리포지토리를 생성하며, 작업 디렉토리 없이 순수하게 Git 데이터만 포함하게 됩니다.

일반 리포지토리와 --bare 리포지토리의 차이점 요약

구분일반 리포지토리--bare 리포지토리

사용 목적 로컬 개발 및 개인 프로젝트 관리 원격 서버에서의 버전 관리 및 협업 리포지토리
작업 디렉토리 있음 없음
파일 구조 프로젝트 루트에 .git 폴더 포함 루트에 직접 Git 메타데이터 저장
실수로 인한 파일 수정 가능성 있음 없음

 

반응형