Skip to main content

Git Feature Branch 워크플로우 가이드

등록일: 2026-04-26


1. 개요

기존 SVN의 중앙 집중식 방식에서 벗어나, 기능 단위로 브랜치를 분리하여 작업하고 검증 후 통합하는 현대적인 Git 워크플로우를 정리함.

2. 주요 단계 (Step-by-Step)

단계 1: 새로운 기능 브랜치 생성 (Local)

작업을 시작하기 전, 최신 main 상태에서 새로운 목적을 가진 브랜치를 생성하고 이동함.

# main 브랜치로 이동 및 최신화
git checkout main
git pull origin main

# 새로운 브랜치 생성 및 이동 (예: feature/docker)
git checkout -b feature/docker-deployment

단계 2: 작업 및 로컬 커밋 (Local)

소스 코드를 수정하고 로컬 저장소에 변경 사항을 기록함.

# 변경된 파일 스테이징
git add .

# 커밋 메시지 작성
git commit -m "feat: add dockerfile and compose settings"

단계 3: 원격 저장소에 푸시 (Remote)

로컬에서 작업한 브랜치를 GitHub 서버로 업로드함.

git push origin feature/docker-deployment

단계 4: Pull Request(PR) 생성 및 Merge (GitHub UI)

  1. GitHub 웹페이지에서 Create pull request 클릭.
  2. 코드 변경 사항 확인 및 팀원(또는 자신)과 리뷰 진행.
  3. 충돌(Conflict)이 없다면 Merge pull request 클릭하여 main에 합침.

단계 5: 로컬 동기화 및 브랜치 정리 (Local)

Merge가 완료되면 다시 로컬 환경을 최신화하고 임시 브랜치를 삭제함.

# 다시 main으로 복귀
git checkout main

# GitHub에서 합쳐진 최신 내용 가져오기
git pull origin main

# 작업이 끝난 로컬 브랜치 삭제
git branch -d feature/docker-deployment

3. 주요 Merge 옵션 비교

  • Create a merge commit: 모든 커밋 히스토리를 유지하며 합침. (가장 일반적임)
  • Squash and merge: 여러 커밋을 하나로 뭉쳐서 합침. main 히스토리가 깔끔해짐.
  • Rebase and merge: 커밋 기록을 일직선으로 이어 붙임.

4. 장점

  • 안전성: main 브랜치를 항상 실행 가능한 상태로 유지할 수 있음.
  • 격리: 여러 기능을 동시에 개발해도 서로 간섭하지 않음.
  • 기록: 기능 단위로 어떤 고민을 했는지 PR 기록을 통해 확인 가능함.