import { Alert } from '../components/common/Alert'; import { CodeBlock } from '../components/common/CodeBlock'; import { StepGuide } from '../components/common/StepGuide'; export default function GitWorkflow() { return (

Git 워크플로우

팀 브랜치 전략, 커밋 규칙, 3계층 보호 정책을 안내합니다.

{/* 브랜치 전략 */}

브랜치 전략

main ← 배포 가능한 안정 브랜치 (보호됨)
└── develop ← 개발 통합 브랜치
├── feature/ISSUE-123-기능설명
├── bugfix/ISSUE-456-버그설명
└── hotfix/ISSUE-789-긴급수정
main 브랜치에 직접 커밋/푸시는 금지됩니다. 반드시 MR을 통해 머지하세요.{' '} develop 브랜치는 push 가능하지만 서버 pre-receive hook 검증을 통과해야 합니다. {/* 브랜치 네이밍 */}

브랜치 네이밍

유형 패턴 예시
기능 feature/ISSUE-번호-설명 feature/ISSUE-42-user-login
버그 bugfix/ISSUE-번호-설명 bugfix/ISSUE-56-date-format
긴급 hotfix/ISSUE-번호-설명 hotfix/ISSUE-99-api-timeout
{/* Conventional Commits */}

Conventional Commits

모든 커밋 메시지는 다음 형식을 따릅니다.

{[ { type: 'feat', desc: '새로운 기능 추가', ex: 'feat(auth): JWT 기반 로그인 구현' }, { type: 'fix', desc: '버그 수정', ex: 'fix(배치): 야간 배치 타임아웃 수정' }, { type: 'refactor', desc: '리팩토링', ex: 'refactor(user): 중복 로직 추출' }, { type: 'docs', desc: '문서 변경', ex: 'docs: README에 빌드 방법 추가' }, { type: 'test', desc: '테스트 추가/수정', ex: 'test(결제): 환불 로직 단위 테스트' }, { type: 'chore', desc: '빌드, 설정 변경', ex: 'chore: Gradle 의존성 업데이트' }, ].map((row) => ( ))}
type 설명 예시
{row.type} {row.desc} {row.ex}
/push 스킬은 변경 내용을 분석하여 이 형식에 맞는 커밋 메시지를 자동 생성합니다. 직접 커밋할 때는 위 규칙을 따르세요. 로컬 commit-msg hook이 형식을 검증합니다. {/* 작업 흐름 */}

일반 작업 흐름

스킬 기반 워크플로우 (권장)

Claude Code의 스킬을 사용하면 브랜치 생성부터 MR 머지까지 자동화할 수 있습니다.

이슈 내용을 분석하고 feature/ISSUE-42-설명 브랜치를 자동 생성합니다.

), }, { title: '개발 및 중간 푸시', content: ( <>

변경 내용을 분석하여 Conventional Commits 형식의 커밋 메시지를 자동 생성하고 푸시합니다.

), }, { title: 'MR 생성', content: ( <>

커밋 + 푸시 + MR 생성 + 릴리즈 노트 갱신을 한 번에 수행합니다. 봇 자동 승인/머지 옵션도 선택할 수 있습니다.

), }, { title: '리뷰 후 머지', content: (

리뷰어 지정 → 최소 1명 승인 → Squash Merge → 소스 브랜치 자동 삭제.{' '} /mr 실행 시 봇 승인+머지를 선택하면 이 과정도 자동화됩니다.

), }, ]} />

수동 워크플로우

Claude Code 미사용 환경에서의 git 명령어 기반 작업 흐름입니다.

1

브랜치 생성

2

커밋

3

푸시 및 MR 생성

4

리뷰 및 머지

리뷰어 지정 → 최소 1명 승인 → Squash Merge → 소스 브랜치 삭제

{/* 3계층 보호 정책 */}

3계층 보호 정책

1. Git Hooks (로컬)

commit-msg 훅으로 커밋 메시지 형식을 검증합니다. Conventional Commits 규칙에 맞지 않으면 커밋이 거부됩니다.

2. 서버 Pre-receive Hook

Push 시 서버에서 pre-receive hook이 자동 실행됩니다.{' '} main/develop 브랜치 직접 push 차단, 커밋 메시지 형식 검증, 금지 파일(credentials, .env 등) 차단, force push 차단을 수행합니다.

3. 브랜치 보호 규칙

main 브랜치는 MR을 통해서만 머지 가능하며, 최소 1명의 리뷰어 승인이 필수입니다.{' '} develop 브랜치는 push가 허용되지만, pre-receive hook 검증을 통과해야 합니다.

); }