Git 원격 브랜치 가져오기
처음 Git 저장소를 clone하면 기본 브랜치만 로컬에 내려받아집니다. 우선 원격 저장소에 있는 다른 브랜치들을 어떻게 가져오는지 설명합니다.
1. clone 이후 브랜치 상황 이해하기
Git 저장소를 git clone <repository_url>로 처음 복제하면, 일반적으로 기본 브랜치 (보통 main 또는 master)만 로컬에 체크아웃됩니다. 다른 브랜치들은 로컬에는 존재하지 않습니다.
이 상태에서 git pull을 실행해도 현재 브랜치가 최신 상태라면 "이미 업데이트 상태입니다"라는 메시지가 나타납니다. 이는 다른 브랜치의 변경사항을 가져오는 것이 아니라 현재 브랜치만 갱신하기 때문입니다.
2. 원격 브랜치 목록 확인
원격 저장소에 어떤 브랜치가 있는지 확인하려면 다음 명령어를 사용합니다:
git branch -r
출력 예시는 다음과 같습니다:
origin/HEAD -> origin/main
origin/main
origin/feature/login
origin/bugfix/ui-fix
여기서 origin/feature/login 등은 원격 추적 브랜치입니다. 아직 로컬 브랜치로는 만들어지지 않았습니다.
3. 원격 브랜치를 로컬로 가져오는 방법
원격 브랜치를 로컬 브랜치로 만들어서 작업하려면 아래와 같이 합니다:
# 1단계: fetch로 원격 브랜치 목록을 최신으로 가져오기
git fetch --all
# 2단계: 원격 브랜치를 로컬 브랜치로 생성
git checkout -b feature/login origin/feature/login
# 또는 최신 Git에서는 더 간편하게
git switch feature/login
이 과정을 통해 원격 브랜치의 내용을 로컬 브랜치로 복제할 수 있습니다.
fetch vs pull의 차이
Git을 사용하다보면 fetch와 pull이 혼동될때가 많이 있습니다.
fetch의 경우 원격 저장소의 모든 변경사항을 받아오되, 로컬 브랜치는 변경하지 않습니다. 원격 추적 브랜치만 갱신합니다.
pull의 경우 fetch를 수행한 후 현재 checkout된 브랜치와 원격 추적 브랜치를 자동으로 merge 또는 rebase 합니다.
즉, fetch는 안전하고 수동적인 명령어이고, pull은 자동으로 병합까지 수행하는 능동적인 명령어입니다. 항상 안전하게 먼저 fetch로 상황을 확인한 후, 수동으로 병합하는 것이 추천되는 경우도 많습니다.
'프로그래밍 > Git' 카테고리의 다른 글
| Git bash에서 log 보는 법 (4) | 2025.07.18 |
|---|---|
| Git merge & rebase 차이 (4) | 2025.07.17 |
| GitHub 사용 시 SSH Key 등록 방법! (2) | 2025.06.20 |
| 로컬에서 작업한 코드를 Github에 처음 올리는 방법! (1) | 2025.06.16 |