AppleDeveloperAcademy@Postech Challenge3
main: 배포된 안정적인 코드 (릴리즈 버전)dev: 개발 중인 코드들이 통합되는 브랜치feature/*: 새로운 기능 개발fix/*: 버그 수정docs/*: 문서 작업 (README, 주석 등)refactor/*: 코드 리팩토링chore/*: 설정, 빌드 관련 작업
main ←── dev
├── feature/login-view ──┐
├── fix/button-crash ──────┤
├── docs/readme-update ────┤ → PR → dev (머지 후 브랜치 삭제)
├── refactor/user-manager ─┤
└── chore/xcode-settings ──┘gitGraph
commit id: "main"
branch dev
checkout dev
commit id: "dev init"
branch feature/login-view
checkout feature/login-view
commit id: "feat: login UI"
checkout dev
merge feature/login-view
branch fix/button-crash
checkout fix/button-crash
commit id: "fix: button"
checkout dev
merge fix/button-crash
checkout main
merge dev
commit id: "v1.0.0"
작업 순서
dev에서 작업용 브랜치 생성- 해당 브랜치에서 작업 완료
- Pull Request 생성 (작업 브랜치 →
dev) - 코드 리뷰 및 승인
dev로 머지- 작업 브랜치 삭제
- 릴리즈 준비 시
dev→main머지
핵심 원칙
- 모든 작업 브랜치는
dev에서 분기 - 모든 작업 브랜치는
dev로 머지 main은 릴리즈 시에만 업데이트dev는 언제든 실험 가능한 안전한 공간
형식: 타입/설명 또는 타입/설명-#이슈번호
- 구분자: 하이픈(
-) 사용 통일 - 설명: 간결하고 명확한 영어 단어 조합
개발 초반 (view 단위)
feature/login-viewfeature/profile-viewfeature/home-viewfeature/settings-view
개발 중후반 (기능 단위)
feature/user-authenticationfeature/data-syncfeature/push-notification
이슈 연동 예시
feature/login-view-#12
fix/button-crash-#25
docs/readme-update-#8# 새 기능 개발 시
git checkout dev
git pull origin dev
git checkout -b feature/login-view
# 작업 완료 후
git add .
git commit -m "feat: 로그인 화면 UI 구현"
git push origin feature/login-view형식
타입: 간단한 설명
상세 설명 (선택사항)
커밋 타입
feat: 새로운 기능 추가fix: 버그 수정docs: 문서 수정style: 코드 포맷팅, 세미콜론 누락 등refactor: 코드 리팩토링test: 테스트 코드 추가/수정chore: 빌드 관련, 패키지 매니저 설정 등
예시
feat: 사용자 로그인 기능 구현
fix: 버튼 터치 이벤트 오류 수정
docs: README 파일 업데이트
style: 코드 들여쓰기 정리
refactor: UserManager 클래스 구조 개선
1. 제목 형식: [타입] 간단한 설명
- 예:
[Feat] 사용자 프로필 화면 구현 - 예:
[Fix] 버튼 터치 이벤트 오류 수정
2. 내용 템플릿
## 관련 이슈
- Closes #12
## 작업 내용
- 구현한 기능이나 수정한 내용
## 변경사항
- 주요 변경 사항 요약
## 스크린샷 (UI 변경 시)
- Before/After 스크린샷
## 체크리스트
- [ ] 빌드 에러 없음
- [ ] 기본 동작 테스트 완료
- [ ] 코드 리뷰 준비 완료3. 리뷰 규칙
- 리뷰어: 최소 3명 이상의 Approved 필요
- Merge 방식: Squash and merge 고정
이슈 제목: [타입] 간단한 설명
- 예:
[Feature] 로그인 화면 구현 - 예:
[Bug] 앱 크래시 오류
이슈 라벨
feature: 새로운 기능bug: 버그 수정enhancement: 기능 개선documentation: 문서 작업help wanted: 도움 필요
- 이슈 생성: 작업할 내용을 이슈로 먼저 생성
- 브랜치 생성: 이슈 번호를 포함하여 브랜치 생성
git checkout -b feature/login-view-#12
- PR 생성: PR 제목과 설명에 이슈 번호 포함
- 제목:
[Feat] 로그인 화면 구현 #12 - 설명에
Closes #12또는Fixes #12추가
- 제목:
Feature
## 기능 설명
- 구현할 기능에 대한 간단한 설명
## 요구사항
- [ ] 주요 기능 1
- [ ] 주요 기능 2
- [ ] 주요 기능 3
## 참고 자료
- 디자인 목업, 참고 이미지, 또는 관련 링크
## 예상 작업 시간
- 예: 2일Bug
## 버그 설명
- 어떤 문제가 발생하는지 간단히 설명
## 재현 방법
1. 어떤 화면에서
2. 어떤 동작을 하면
3. 어떤 문제가 발생
## 기대 동작
- 정상적으로 동작해야 하는 방식
## 스크린샷
- 버그 발생 화면 스크린샷main브랜치에 직접 push 금지- 커밋 메시지에 의미없는 내용 금지 (예: "수정", "테스트")
- 대용량 파일(.xcuserstate, .DS_Store 등) 커밋 금지