Git을 사용하다 보면 --bare
와 --mirror
옵션을 접하게 될 때가 있어요. 이 옵션들이 뭐하는 녀석들인지 궁금하시죠? 오늘은 이 두 가지 옵션에 대해 살펴보겠습니다. 먼저, 이 단어들의 의미를 통해 쉽게 이해해볼까요?
--bare
옵션
--bare
가 뭐야?
bare
라는 단어는 '벌거벗은', '아무것도 없는'이라는 의미를 가지고 있어요. --bare
옵션도 이와 비슷하게, 작업 디렉토리 없이 Git 데이터만 있는 저장소를 만들어요. 일반적으로 사용하는 Git 저장소는 .git
디렉토리와 작업 디렉토리로 구성되지만, --bare
옵션을 사용하면 .git
디렉토리만 있는 저장소가 만들어집니다.
왜 쓰는 거야?
--bare
저장소는 주로 중앙 저장소로 사용됩니다. 예를 들어, 여러분의 팀이 Git을 사용해 프로젝트를 진행한다고 가정해볼게요. 이때 모든 팀원이 자신의 로컬 저장소에서 작업한 변경 사항을 푸시할 중앙 저장소가 필요해요. 이 중앙 저장소는 --bare
옵션을 사용해 생성된 저장소여야 합니다.
다음과 같은 상황을 생각해볼 수 있어요!
- 중앙 저장소 설정: 회사 내 서버에
--bare
옵션을 사용해 중앙 저장소를 생성합니다.이 명령어를 통해/path/to/repo.git
이라는 중앙 저장소가 생성됩니다.git init --bare /path/to/repo.git
- 팀원들이 중앙 저장소를 클론: 각 팀원은 중앙 저장소를 클론하여 자신의 로컬 저장소를 만듭니다.
git clone /path/to/repo.git
- 작업 후 푸시: 팀원들이 각자 로컬에서 작업한 후, 변경 사항을 중앙 저장소로 푸시합니다.
git push origin main
이런 방식으로 --bare
저장소는 직접 코드를 수정하지 않고, 팀원들이 각자의 변경 사항을 푸시하거나 풀 할 수 있는 중앙 저장소로 사용됩니다. 이를 통해 협업이 원활하게 이루어질 수 있죠.
어떻게 사용하는 거야?
--bare
옵션을 사용해서 저장소를 만듭니다.
git init --bare my-bare-repo.git
이렇게 하면 my-bare-repo.git
이라는 이름의 --bare
저장소가 생성돼요. 이제 이 저장소는 다른 개발자들이 푸시하거나 풀 할 수 있는 공유 저장소로 사용할 수 있습니다.
--bare
저장소 복제 예시
회사에서 여러 팀원이 함께 작업하는 중앙 저장소를 설정하려고 할 때, --bare
옵션을 사용해 공유 저장소를 만들어볼 수 있어요.
예를 들어, my-bare-repo.git
이라는 이름으로 중앙 저장소를 생성하고, 팀원들이 이 저장소를 복제하여 작업할 수 있게 합니다.
--mirror
옵션
--mirror
가 뭐야?
mirror
라는 단어는 '거울'이라는 의미를 가지고 있어요. --mirror
옵션은 원본 저장소의 모든 정보를 그대로 반영(복제)하는 역할을 합니다. 일반적으로 git clone
명령어로 저장소를 복제할 때는 브랜치, 태그, 원격 설정 등 기본적인 정보들만 가져오지만, --mirror
옵션을 사용하면 원본 저장소의 모든 정보가 포함됩니다.
왜 쓰는 거야?
--mirror
옵션은 원본 저장소와 완벽하게 동일한 복제본이 필요할 때 유용합니다. 주로 백업이나 마이그레이션 용도로 사용되죠. 예를 들어, 여러분의 회사가 현재 사용 중인 GitHub 저장소를 새로운 서버로 이전해야 한다고 가정해볼게요. 이때 --mirror
옵션을 사용하면 모든 브랜치, 태그, 원격 설정 등을 포함한 저장소의 전체 복제본을 만들 수 있습니다.
다음과 같은 상황을 생각해볼 수 있어요.
- 백업: 중요한 프로젝트를 안전하게 백업하기 위해
--mirror
옵션을 사용해 저장소의 전체 복제본을 생성합니다.이 명령어를 통해repo.git
디렉토리에 원본 저장소의 모든 정보가 복제됩니다.git clone --mirror https://github.com/username/repo.git
- 마이그레이션: 기존 서버에서 새로운 서버로 저장소를 이전해야 할 때
--mirror
옵션을 사용해 복제본을 만들고, 새로운 서버로 옮깁니다.git clone --mirror https://github.com/username/repo.
git cd 해당 디렉토리
git push --mirror ssh://newserver.com/path/to/repo.git
이런 방식으로 --mirror
옵션은 저장소의 모든 데이터를 완벽하게 복제하여, 백업 및 서버 이전 등의 작업을 원활하게 수행할 수 있게 합니다.
어떻게 사용하는 거야?
--mirror
옵션을 사용해서 저장소를 복제할 때는 아래와 같이 명령어를 입력합니다
git clone --mirror https://github.com/username/repo.git
이렇게 하면 원본 저장소의 모든 정보가 포함된 repo.git
디렉토리가 생성됩니다.
이 디렉토리를 다른 서버로 옮기거나 백업 용도로 사용할 수 있겠죠?
--mirror
저장소 복제 예시
회사의 GitHub 저장소를 다른 서버로 이전하려고 할 때, --mirror
옵션을 사용해 모든 정보를 그대로 복제할 수 있어요.
예를 들어, company-repo
를 새로운 서버로 마이그레이션하려고 할 때, --mirror
옵션을 사용해 원본 저장소의 모든 정보를 포함한 복제본을 생성할 수 있습니다.
요약
--bare
: 작업 디렉토리 없이 Git 데이터만 있는 저장소를 만들 때 사용해요. 주로 중앙 저장소나 공유 저장소로 사용--mirror
: 원본 저장소의 모든 정보를 그대로 복제할 때 사용해요. 주로 백업이나 마이그레이션 용도로 사용
'형상&버전 관리' 카테고리의 다른 글
[Git/GitHub] 프로젝트 레포지토리 이전하기(--mirror) (0) | 2024.04.13 |
---|