프로젝트를 진행하면서 기능을 독립적으로 개발하거나 버그 수정을 따로 진행할 필요가 있을 때, Git의 브랜치 기능을 활용하면 효율적으로 작업할 수 있습니다.
이 글에서는 브랜치를 생성하고 전환하는 기본 명령어인 branch
와 checkout
, 그리고 최신 원격 브랜치 정보를 가져오기 위해 사용하는 fetch
에 대해 자세히 살펴보겠습니다.
branch - 브랜치 생성 및 관리
git branch
명령어는 새로운 브랜치를 생성하거나, 기존 브랜치 목록을 확인하고 삭제하는 등 브랜치 관련 작업을 수행할 수 있습니다.
이를 통해 독립적인 작업 영역을 만들어 다양한 기능을 동시에 개발할 수 있습니다.
#로컬 브랜치 목록 확인
git branch
#새로운 브랜치 생성
git branch <브랜치명>
옵션 | 설명 |
-m | 브랜치 이름 변경 |
-v | 브랜치 목록과 각 브랜치의 최근 커밋 확인 |
-a / --all | 로컬 브랜치와 원격 추적 브랜치를 모두 표시 |
--merged | 현재 체크아웃된 브랜치에 이미 병합된 브랜치들을 목록으로 출력 |
--no-merged | 현재 체크아웃된 브랜치에 병합되지 않은 브랜치들을 목록으로 출력 |
-d / --delete | 병합이 완료된 브랜치를 안전하게 삭제 |
-D | 병합 여부와 상관없이 강제로 브랜치를 삭제 |
--set-upstream | 현재 로컬 브랜치의 원격 추적(upstream) 브랜치를 지정 |
checkout – 브랜치 전환 및 파일 복원
git checkout
명령어는 특정 브랜치로 전환할 때 사용합니다.
또한, 특정 파일의 이전 버전을 복원할 때도 유용하게 사용됩니다.
# 'develop' 브랜치로 전환합니다.
git checkout develop
# 'feature/login' 브랜치를 새로 생성하고 전환합니다.
git checkout -b feature/login
git checkout -b <new_branch> <base_branch>
#실수로 수정된 파일을 마지막 커밋 상태로 복원합니다.
git checkout -- config.json
#--force : 로컬 변경 사항 삭제 및 강제 전환
git checkout -f develop
#모든 변경사항을 취소
git checkout .
위의 예시에서와 같이 git checkout
명령어의 기능이 브랜치간 전환, 워킹 트리의 파일복원 등 다양한 기능을 제공하는 것을 알 수 있습니다.
checkout 명령어를 사용하여 브랜치 간 전환을 진행할 때, 현재 디렉터리에서 커밋 되지 않은 변경사항이 있는 경우 다른 브랜치로 이동할 수 없습니다. 이 경우 stash를 이용하여 변경사항을 임시로 저장 후 브랜치 간 전환을 할 수 있습니다.
checkout → switch / restore로 대체
Git 2.23 에서는 너무 많은 기능을 가지고 있는 checkout
명령어를 대신하여 switch
, restore
명령어가 도입되었습니다.
- switch : 브랜치 간 전환
- restore : 워킹 트리의 파일 복원
switch - 브랜치 전환 명령어
git switch
명령어는 브랜치 전환에만 초점을 맞춘 명령어입니다.
보다 직관적인 옵션으로 새 브랜치를 만들고 전환하는 작업도 한 번에 할 수 있습니다.
#브랜치 전환
git switch <브랜치 명>
#새로운 브랜치를 생성하고 전환
git switch -c <브랜치 명>
restore - 파일 복원 명령어
git restore
명령어는 파일의 변경사항을 특정 커밋 상태로 복원하거나, 스테이징된 변경을 취소할 때 사용되는 전용 명령어로, 파일 복원 작업에 대해 보다 명확한 구문을 제공합니다.
#작업 디렉터리에서 수정된 파일을 마지막 커밋 상태로 복원합니다.
git restore <파일 명>
#스테이징 영역에서 'app.js' 변경을 취소합니다.
git restore --staged app.js
#특정 커밋의 상태로 파일 'index.html'을 복원합니다.
git restore --source=HEAD~2 index.html
fetch - 원격 브랜치 정보 업데이트
앞선 글에서도 다뤘듯, fetch는 원격 저장소의 커밋과 브랜치 정보를 로컬에 업데이트합니다.
원격 브랜치도 fetch를 통해 확인 가능하며, 아래처럼 사용할 수 있습니다.
git fetch origin
git checkout -b feature/new origin/feature/new
→ 원격 저장소에 있는 브랜치로 부터 새로운 로컬 브랜치를 생성하고, 그 상태로 전환합니다.
Git의 다양한 브랜치 관련 명령어를 활용하면, 복잡한 개발 환경에서도 여러 작업을 병렬로 안전하게 진행할 수 있습니다.branch
로 작업 흐름을 나누고, checkout
으로 브랜치를 오가며, fetch
를 통해 팀의 작업 상태를 반영하는 일련의 과정은 프로젝트의 안정성과 생산성을 크게 향상시켜줍니다.
'DevOps > Git' 카테고리의 다른 글
[Git] Git 브랜치 전략 : 팀 환경에 맞는 전략 선택과 운영 방법 (0) | 2025.04.26 |
---|---|
[Git] 브랜치 통합 : merge, rebase, cherry-pick (0) | 2025.04.23 |
[Git] 원격 저장소와 동기화 : fetch, pull, push (0) | 2025.04.18 |
[Git] 변경 이력 관리 : commit, log, diff, show (0) | 2025.04.17 |
[Git] Git 파일 관리 : add, status, rm (0) | 2025.04.16 |