Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

Git으로 특정 브랜치만 클론하는 방법: --single-branch 옵션 완벽 가이드

git clone --single-branch --branch 명령어를 사용하면 원격 저장소에서 특정 브랜치만 골라서 복제할 수 있습니다. 이 명령어를 활용하면 저장소의 모든 브랜치를 다운로드하지 않고도 필요한 코드만 가져올 수 있기 때문에, 용량이 큰 저장소를 다룰 때 특히 유용합니다.

기본적으로 git clone 명령어는 Git 저장소의 모든 브랜치를 그대로 복제합니다. 특정 브랜치 하나만 클론하고 싶다면 --single-branch 플래그를 함께 사용해야 합니다.

이 가이드에서는 git clone 명령어로 특정 브랜치만 복제하는 방법을 단계별로 살펴보고, 실제 예시를 통해 개념을 확실히 익혀보겠습니다.

클론(Clone)이란 무엇일까요?

클론은 원격 서버에 호스팅된 저장소 전체를 내 로컬 머신에 그대로 복사해 오는 작업입니다. git clone 명령어 한 줄이면 손쉽게 저장소를 복제할 수 있습니다.

덕분에 Git 버전 관리 서버가 별도의 웹 인터페이스를 제공하지 않아도, 커맨드 라인에서 바로 저장소 사본을 내려받을 수 있습니다.

특정 브랜치만 클론하면 프로젝트의 모든 브랜치를 내려받지 않으므로 디스크 공간 사용량을 크게 줄일 수 있습니다. 나중에 다른 브랜치가 필요해지면 그때 추가로 받아오면 되니 부담이 없습니다.

Git에서 특정 브랜치만 클론하기

git clone --single-branch --branch 명령어는 Git 저장소에서 지정한 브랜치 하나만 복제합니다. --branch 뒤에 클론하려는 브랜치 이름을 적어주면 됩니다. 일단 저장소를 클론한 후에는 언제든 다른 브랜치를 추가로 받아올 수 있습니다.

--single-branch 옵션을 사용하면 클론 시 가져오는 브랜치를 하나로 제한할 수 있습니다:

git clone --single-branch --branch <브랜치-이름> <저장소-URL>

<브랜치-이름> 자리에는 클론하려는 브랜치의 실제 이름을 입력합니다. 해당 브랜치가 존재하지 않으면 명령어 실행 시 에러가 발생합니다. <저장소-URL>에는 브랜치를 가져올 원격 저장소의 주소를 넣습니다.

Git 특정 브랜치 클론 예시

ck-git이라는 저장소가 있고, 이 저장소에는 master와 dev 두 개의 브랜치가 있다고 가정해 보겠습니다. dev 브랜치는 사용할 계획이 없으므로 master 브랜치만 가져오고 싶습니다.

master 브랜치만 받아오려면 git clone 명령어에 --single-branch 옵션을 붙여 실행하면 됩니다:

git clone --single-branch --branch master https://github.com/career-karma-tutorials/ck-git

--single-branch 플래그 뒤에 --branch 플래그 값을 지정했습니다. 여기서 Git에게 어떤 브랜치를 클론할지 알려줍니다. 그다음에는 일반적인 git clone 명령어와 마찬가지로 복제할 저장소의 URL을 지정합니다.

명령어를 실행하면 어떻게 되는지 확인해 보겠습니다:

Cloning into 'ck-git'...
remote: Enumerating objects: 37, done.
...
Unpacking objects: 100% (37/37), done.

git clone 명령어가 ck-git 저장소를 로컬 머신으로 복사했습니다. --single-branch 플래그를 사용했기 때문에 "master" 브랜치만 클론된 것을 볼 수 있습니다.

"master" 브랜치만 클론되었는지 확인하려면 새로 생성된 프로젝트 폴더로 이동한 뒤 git branch 명령어를 실행하면 됩니다:

cd ck-git/
git branch

git branch 명령어는 로컬 저장소에 저장된 모든 브랜치 목록을 보여줍니다:

* master

클론된 브랜치는 master 하나뿐입니다.

단일 브랜치만 클론하려면 반드시 --single-branch 플래그를 지정해야 합니다. --branch 플래그만 단독으로 사용하면 저장소에 진입했을 때 체크아웃할 기본 브랜치를 지정하는 것일 뿐, 모든 브랜치를 여전히 함께 내려받게 됩니다.

--single-branch 플래그는 Git 1.7.10 버전부터 지원됩니다.

원격 브랜치 가져오기(Fetch)

브랜치를 하나만 받았기 때문에 프로젝트의 다른 브랜치에 있는 코드는 볼 수 없습니다.

그런데 작업 중에 "dev" 브랜치 사본도 필요해졌다고 해봅시다. 걱정할 필요 없습니다. 처음 클론한 이후에도 원격 브랜치를 언제든 가져올 수 있기 때문입니다. git checkout 명령어로 "dev" 브랜치를 받아올 수 있습니다:

git checkout --track origin/dev

이 명령어는 "origin"(원격 저장소)에 있는 dev 브랜치를 가져옵니다. 여기서 "origin"은 현재 로컬 저장소와 연결된 원격 저장소를 의미합니다.

"dev" 브랜치는 로컬 브랜치로 저장되며, Git HEAD가 "dev" 브랜치로 전환됩니다. 즉, 기존에 보고 있던 브랜치에서 "dev" 브랜치로 작업 대상이 바뀌는 것입니다.

마무리

git clone --single-branch --branch 명령어를 사용하면 Git 저장소에서 특정 브랜치만 골라 클론할 수 있습니다. 이 명령어는 해당 브랜치와 관련된 모든 파일과 메타데이터를 가져오며, 다른 브랜치가 필요하면 나중에 fetch로 받아오면 됩니다.

Git을 더 깊이 배우고 싶다면 공식 문서, 온라인 강의, 도서 등 다양한 학습 리소스를 활용해 보세요. 초보자 단계부터 전문가 수준까지 체계적으로 실력을 쌓을 수 있습니다.