Git) branch
- Git에서 branch(브랜치)는 독립적인 작업 흐름을 만들기 위해 사용하는 개념.
- 새로운 기능을 개발하거나 버그를 수정할 때, 기존 코드를 건드리지 않고 안전하게 작업을 진행하겨면 새 브랜치를 만들어 작업한 뒤, 완료 후 메인(main/master) 브랜치에 변경 내용을 합치는(병합, 머지) 방식이 기본 워크플로우이다.
브랜치를 사용하는 이유
독립적인 작업 공간
- 현재 제품(프로덕션) 코드를 안정적으로 유지하면서, 실험적으로 기능 개발을 하고 싶을 때 유용.
- 각 기능(또는 이슈, 버그 수정)마다 별도 브랜치를 만들어서 개발하면, 서로 간섭 없이 안전하게 작업할 수 있다.
히스토리 관리 용이
- 기능 단위로 브랜치가 만들어지고 머지(Merge) 되므로, 커밋 히스토리가 보기 쉬워진다.
- 기능별로 작업한 커밋을 한눈에 파악할 수 있다.
협업 편의성
- 여러 명이 동시에 작업할 때, 각자 브랜치를 사용하면 충돌을 최소화하고, 최종적으로 병합 과정을 통해 코드를 통합한다.
브랜치 관련 기본 명령어
브랜치 목록 보기
- 로컬에 있는 브랜치를 전부 표시.
- 현재 체크아웃된 브랜치는 *로 표시.
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 <브랜치-이름>
요약
- 브랜치는 독립된 작업 흐름을 위한 “분기”다.
- 기능별, 이슈별로 브랜치를 따로 만들어 작업한 뒤, 병합을 통해 main 브랜치에 반영한다.
- Git은 브랜치 생성/전환/병합이 매우 빠르고 효율적이므로, 작은 단위로 브랜치를 만들어 작업하는 편이 좋다.
- 협업 시 충돌 관리와 코드 리뷰에도 크게 도움이 된다.
이렇게 브랜치를 잘 운용하면, 안정적인 코드를 유지하면서 동시에 여러 가지 기능 개발을 빠르고 안전하게 진행할 수 있다.
댓글남기기