개발 가이드 공통 (Common) Git 브랜치 전략
최종 수정:

Git 브랜치 전략

Git 브랜치 전략, 커밋 메시지 규칙, 코드 리뷰

Git 브랜치 전략

브랜치 구조

master          # 운영 배포 브랜치 (직접 커밋 금지)
└── feature/    # 기능 개발
└── fix/        # 버그 수정
└── refactor/   # 리팩토링
└── docs/       # 문서 작성

브랜치 네이밍

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

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

# 리팩토링
refactor/news-service-extract

# 문서
docs/api-guide-update

커밋 메시지 규칙

[접두사] 간결한 제목 (50자 이내)

(선택) 본문 — 변경 이유, 주의사항 등

접두사 목록

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

커밋 예시

git commit -m "[feat] 뉴스 검색 기능 추가"
git commit -m "[fix] 페이지네이션 계산 오류 수정"
git commit -m "[refactor] NewsService 메서드 분리"
git commit -m "[docs] API 설계 가이드 작성"

커밋 단위

  • 기능 하나, 버그 하나 단위로 커밋
  • 여러 파일을 수정해도 하나의 목적이면 하나의 커밋
  • 관련 없는 변경사항 혼재 금지
# 좋은 예
git add src/domain/news/service/NewsService.java
git add src/domain/news/controller/NewsController.java
git commit -m "[feat] 뉴스 키워드 검색 API 추가"

# 나쁜 예 — 관련 없는 변경 혼재
git add -A
git commit -m "여러 수정"

작업 흐름

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

# 2. 개발 및 커밋
git add <파일>
git commit -m "[feat] 뉴스 검색 기능 추가"

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

# 4. PR 생성 → 코드 리뷰 → master 머지
# (GitHub에서 Pull Request 생성)

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

.gitignore 필수 항목

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

# 민감 정보
.env
.env.*
application-prod.yml
application-local.yml
agent.env
*.pem
*.key

# IDE
.idea/
*.iml
*.iws

# OS
.DS_Store
Thumbs.db

# 로그
*.log
logs/

GitHub 저장소

  • 원격 저장소: git@github.com:MooPee/scraping.git
  • 기본 브랜치: master
  • master 브랜치 직접 push 금지
  • PR 머지 시 Squash or Merge 커밋 사용

주의사항

  • application-prod.yml, application-local.yml, .env 파일은 절대 커밋 금지
  • SSH 키 (*.pem) 파일 커밋 절대 금지
  • git 히스토리에 민감 정보가 포함됐다면 → git filter-branch 또는 BFG Repo-Cleaner 사용
AI 문서 검색

현재 페이지 내용을 기반으로 질문하세요.