Git 전략

Git 브랜치 전략, 커밋 메시지 규칙, PR 규칙

마지막 수정: 2026-05

Git 전략

브랜치 구조

브랜치설명
main운영 배포 브랜치 (직접 커밋 금지)
develop개발 통합 브랜치
feature/*기능 개발 브랜치
fix/*버그 수정 브랜치
hotfix/*운영 긴급 패치 브랜치
main              # 운영 배포 (직접 커밋 금지)
└── develop       # 개발 통합
    ├── feature/* # 기능 개발
    ├── fix/*     # 버그 수정
    └── hotfix/*  # 긴급 패치

브랜치 네이밍

# 기능 개발
feature/add-user-search

# 버그 수정
fix/user-pagination-error

# 긴급 패치
hotfix/login-token-expired

커밋 메시지 형식

type(scope): subject

예시:

feat(user): 사용자 검색 기능 추가
fix(auth): 토큰 만료 처리 오류 수정
docs(guide): 네이밍 컨벤션 가이드 작성
refactor(service): UserService 메서드 분리
test(user): 사용자 등록 테스트 추가

커밋 타입

타입사용 상황
feat새 기능 추가
fix버그 수정
docs문서 작성/수정
refactor코드 리팩토링 (기능 변경 없음)
test테스트 추가/수정
style포매팅, 세미콜론 등 (코드 변경 없음)
chore빌드, 의존성 등 기타 작업

PR 규칙

  • develop → main PR은 코드 리뷰 필수
  • 리뷰어 최소 1명 승인 후 머지
  • PR 제목: 커밋 메시지 형식과 동일하게 작성
  • PR 설명: 변경 내용, 테스트 방법 포함

작업 흐름

# 1. develop에서 브랜치 생성
git checkout develop
git pull origin develop
git checkout -b feature/add-user-search

# 2. 개발 및 커밋
git add src/main/java/.../UserController.java
git commit -m "feat(user): 사용자 검색 기능 추가"

# 3. 원격 브랜치 push
git push origin feature/add-user-search

# 4. PR 생성 (feature → develop)
# 5. 코드 리뷰 → 승인 → 머지
# 6. develop → main PR (리뷰어 최소 1명 승인 필수)

# 7. 머지 후 브랜치 삭제
git branch -d feature/add-user-search

.gitignore 필수 항목

# 빌드 결과물
build/
.gradle/
out/

# 민감 정보 — 절대 커밋 금지
.env
.env.*
application-prod.yml
application-local.yml
*.env
*.pem
*.key

# IDE
.idea/
*.iml
*.iws

# OS
.DS_Store
Thumbs.db

# 로그
*.log
logs/

주의사항

  • main 브랜치 직접 push 금지
  • application-prod.yml, .env 파일 커밋 절대 금지
  • SSH 키 (*.pem) 파일 커밋 절대 금지
  • git 히스토리에 민감 정보 포함 시 → BFG Repo-Cleaner 사용
  • develop → main 머지: Squash Merge 권장