- Git에서 branch(브랜치)는 독립적인 작업 흐름을 만들기 위해 사용하는 개념.
- 새로운 기능을 개발하거나 버그를 수정할 때, 기존 코드를 건드리지 않고 안전하게 작업을 진행하겨면 새 브랜치를 만들어 작업한 뒤, 완료 후 메인(main/master) 브랜치에 변경 내용을 합치는(병합, 머지) 방식이 기본 워크플로우이다.
1. 브랜치를 사용하는 이유
- 독립적인 작업 공간
- 현재 제품(프로덕션) 코드를 안정적으로 유지하면서, 실험적으로 기능 개발을 하고 싶을 때 유용.
- 각 기능(또는 이슈, 버그 수정)마다 별도 브랜치를 만들어서 개발하면, 서로 간섭 없이 안전하게 작업할 수 있다.
- 히스토리 관리 용이
- 기능 단위로 브랜치가 만들어지고 머지(Merge) 되므로, 커밋 히스토리가 보기 쉬워진다.
- 기능별로 작업한 커밋을 한눈에 파악할 수 있다.
- 협업 편의성
- 여러 명이 동시에 작업할 때, 각자 브랜치를 사용하면 충돌을 최소화하고,
최종적으로 병합 과정을 통해 코드를 통합한다.
- 여러 명이 동시에 작업할 때, 각자 브랜치를 사용하면 충돌을 최소화하고,
2. 브랜치 관련 기본 명령어
- 브랜치 목록 보기
- 로컬에 있는 브랜치를 전부 표시.
- 현재 체크아웃된 브랜치는 *로 표시.
git branch
# * main
- 새 브랜치 생성 & 전환
- git branch <브랜치-이름>: 브랜치 생성만 수행
- git checkout -b <브랜치-이름>: 브랜치 생성 후 해당 브랜치로 바로 이동
# 브랜치를 생성만
git branch <브랜치-이름>
# 생성 + 전환을 동시에 (권장)
git checkout -b <브랜치-이름>
- 브랜치 전환(checkout)
- 작업 중이던 변경사항이 커밋되지 않았다면,
스테이시(stash)하거나 커밋을 완료해야 깨끗하게 전환할 수 있다.
- 작업 중이던 변경사항이 커밋되지 않았다면,
# main(또는 master) 브랜치로 돌아가서
git checkout main
# 작업 브랜치를 main으로 병합
git merge <작업-브랜치-이름>
- 브랜치 병합(merge)
- 주로 main 또는 develop 브랜치로 돌아가서, 원하는 작업 브랜치를 병합.
- 충돌이 발생하면 수동으로 충돌 해결 후 git add . → git commit
# main(또는 master) 브랜치로 돌아가서
git checkout main
# 작업 브랜치를 main으로 병합
git merge <작업-브랜치-이름>
- 브랜치 이름 변경
# Checkout된 branch 이름 변경
git branch -m <새로운-이름>
- 브랜치 삭제
- -d는 “병합된 브랜치”만 삭제할 수 있다(안전장치).
- -D는 “병합되지 않은 브랜치”도 강제로 지운다(주의!).
# 로컬 브랜치 삭제
git branch -d <브랜치-이름>
# -D 옵션을 쓰면 강제 삭제
git branch -D <브랜치-이름>
- 원격 브랜치 관리
# 원격에 새 브랜치 푸시
git push origin <브랜치-이름>
# 원격 브랜치 삭제
git push origin --delete <브랜치-이름>
4. 요약
- 브랜치는 독립된 작업 흐름을 위한 “분기”다.
- 기능별, 이슈별로 브랜치를 따로 만들어 작업한 뒤, 병합을 통해 main 브랜치에 반영한다.
- Git은 브랜치 생성/전환/병합이 매우 빠르고 효율적이므로, 작은 단위로 브랜치를 만들어 작업하는 편이 좋다.
- 협업 시 충돌 관리와 코드 리뷰에도 크게 도움이 된다.
이렇게 브랜치를 잘 운용하면, 안정적인 코드를 유지하면서
동시에 여러 가지 기능 개발을 빠르고 안전하게 진행할 수 있다.
'Study > Git' 카테고리의 다른 글
Git) .gitignore (1) | 2025.01.22 |
---|---|
Git) git commit --amend (0) | 2025.01.22 |
Git) git log (0) | 2025.01.21 |
Git) git commit, git add (0) | 2025.01.09 |
Git) git init, git status (0) | 2025.01.09 |