Skip to content

Git Convention

rokong.me edited this page Jul 22, 2025 · 5 revisions

🌿 GitHub Flow Convention

GitHub FlowλŠ” λ‹¨μˆœν•˜κ³  효과적인 브랜치 기반의 개발 μ „λž΅μž…λ‹ˆλ‹€. 배포 μ€‘μ‹¬μ˜ μ• μžμΌ κ°œλ°œμ— μ ν•©ν•˜λ©°, GitHubμ—μ„œ 널리 μ‚¬μš©λ©λ‹ˆλ‹€.


πŸ“Œ κΈ°λ³Έ 원칙

  1. main λΈŒλžœμΉ˜λŠ” 항상 배포 κ°€λŠ₯ν•œ μƒνƒœλ‘œ μœ μ§€ν•©λ‹ˆλ‹€.
  2. λͺ¨λ“  μž‘μ—…μ€ κΈ°λŠ₯ λ‹¨μœ„λ‘œ μƒˆλ‘œμš΄ 브랜치λ₯Ό μƒμ„±ν•΄μ„œ μ§„ν–‰ν•©λ‹ˆλ‹€.
  3. μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ Pull Request(PR)λ₯Ό μƒμ„±ν•˜μ—¬ 리뷰와 ν…ŒμŠ€νŠΈλ₯Ό κ±°μΉ©λ‹ˆλ‹€.
  4. 리뷰가 μ™„λ£Œλ˜λ©΄ main 브랜치둜 mergeν•©λ‹ˆλ‹€.
  5. Merge ν›„μ—λŠ” μžλ™ λ˜λŠ” μˆ˜λ™μœΌλ‘œ λ°°ν¬ν•©λ‹ˆλ‹€.

🌿 브랜치 μ „λž΅

1. 브랜치 넀이밍 μ»¨λ²€μ…˜

νƒ€μž… 접두어 μ˜ˆμ‹œ μ„€λͺ…
κΈ°λŠ₯ feat/login-form μƒˆλ‘œμš΄ κΈ°λŠ₯ 개발
버그 μˆ˜μ • fix/login-error 버그 μˆ˜μ • μž‘μ—…
λ¦¬νŒ©ν† λ§ refactor/auth-handler μ½”λ“œ λ¦¬νŒ©ν† λ§
λ¬Έμ„œ docs/readme-update λ¬Έμ„œ μˆ˜μ •
ν…ŒμŠ€νŠΈ test/login-unit-test ν…ŒμŠ€νŠΈ μ½”λ“œ μΆ”κ°€
μ„€μ • chore/hilt-update λΉŒλ“œ, μ„€μ • κ΄€λ ¨ μž‘μ—…

브랜치λͺ…은 νƒ€μž…/κ°„λ‹¨ν•œ-μ„€λͺ… ν˜•μ‹μ„ λ”°λ¦…λ‹ˆλ‹€. ν•˜μ΄ν”ˆ(-)을 μ‚¬μš©ν•΄ 읽기 μ‰½κ²Œ μž‘μ„±ν•©λ‹ˆλ‹€. 브랜치λͺ…μ—λŠ” κ΄€λ ¨ 이슈 번호λ₯Ό 포함할 수 μžˆμŠ΅λ‹ˆλ‹€ (선택 사항).
예: feat/#15_login-form β†’ 이슈 #15 κ΄€λ ¨ μž‘μ—…


πŸ”€ Pull Request κ·œμΉ™

  • PR 제λͺ© μ»¨λ²€μ…˜

    [νƒ€μž…] #[이슈번호] κ°„λ‹¨ν•œ μ„€λͺ…
    예: [Feat] #15 둜그인 폼 UI κ΅¬ν˜„
    
  • κ΄€λ ¨ 이슈

    • PR μ„€λͺ… λ§ˆμ§€λ§‰μ— λ‹€μŒ ν˜•μ‹μœΌλ‘œ μž‘μ„±:
      closes #이슈번호
      예: closes #15
      
    [νƒ€μž…] κ°„λ‹¨ν•œ μ„€λͺ…
    예: [Feat] 둜그인 폼 UI κ΅¬ν˜„
    
  • PR μ„€λͺ… ν…œν”Œλ¦Ώ μ˜ˆμ‹œ

    ## μž‘μ—… λ‚΄μš©
    - 둜그인 UI 폼 λ§ˆν¬μ—… κ΅¬ν˜„
    - μž…λ ₯ ν•„λ“œ μœ νš¨μ„± 검사 μΆ”κ°€
    
    ## 확인 방법
    - `/login` κ²½λ‘œμ—μ„œ 확인 κ°€λŠ₯ν•©λ‹ˆλ‹€.
    
    ## μ°Έκ³  사항
    - μΆ”ν›„ API 연동 ν•„μš”
    
    ## κ΄€λ ¨ 이슈
    - closes #15

πŸ“¦ Merge μ •μ±…

  • λ¨Έμ§€ 방식: Merge Pull Request (컀밋 νžˆμŠ€ν† λ¦¬ κΉ”λ”ν•˜κ²Œ μœ μ§€) => Merge
  • PR 리뷰 승인 ν›„ 직접 λ¨Έμ§€ (λ˜λŠ” Maintainer κΆŒν•œμž λ¨Έμ§€)
  • λ¨Έμ§€ ν›„ main λΈŒλžœμΉ˜μ— 배포 μžλ™ν™” 연동 κ°€λŠ₯

πŸ§ͺ 배포 및 λ‘€λ°±

  • main에 λ¨Έμ§€λ˜λ©΄ 배포 μžλ™ν™”(CI/CD)
  • λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ 이전 릴리즈 νƒœκ·Έ κΈ°μ€€μœΌλ‘œ hotfix 브랜치 생성 ν›„ 배포

πŸ›  μ˜ˆμ‹œ μ›Œν¬ν”Œλ‘œμš°

# 1. 메인 λΈŒλžœμΉ˜μ—μ„œ μ΅œμ‹  μƒνƒœλ‘œ 동기화
git checkout main
git pull origin main

# 2. μž‘μ—… 브랜치 생성
git checkout -b feat/login-form

# 3. μž‘μ—… μˆ˜ν–‰ 및 컀밋
git add .
git commit -m "feat: 둜그인 폼 UI κ΅¬ν˜„"

# 4. 원격 μ €μž₯μ†Œμ— ν‘Έμ‹œ
git push origin feat/login-form

# 5. GitHubμ—μ„œ PR 생성 ν›„ 리뷰 & λ¨Έμ§€

πŸ“š μ°Έκ³  자료


πŸ“ Git Commit Convention (Udacity Style)

컀밋 λ©”μ‹œμ§€λŠ” 일관성과 가독성을 μœ„ν•΄ Udacityμ—μ„œ ꢌμž₯ν•˜λŠ” ν˜•μ‹μ„ λ”°λ¦…λ‹ˆλ‹€.

πŸ’‘ 컀밋 λ©”μ‹œμ§€ ꡬ쑰

<type>: <subject>
  • type은 μ»€λ°‹μ˜ μ˜λ„λ‚˜ λͺ©μ μ„ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • subjectλŠ” κ°„κ²°ν•˜κ²Œ μž‘μ—… λ‚΄μš©μ„ μ„€λͺ…ν•©λ‹ˆλ‹€ (μ΅œλŒ€ 50자 ꢌμž₯).

πŸ”€ νƒ€μž… λͺ©λ‘

νƒ€μž… μ„€λͺ…
feat μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€
fix 버그 μˆ˜μ •
docs λ¬Έμ„œ μˆ˜μ •
style μ½”λ“œ ν¬λ§·νŒ…, μ„Έλ―Έμ½œλ‘  λˆ„λ½ λ“± κΈ°λŠ₯에 영ν–₯ μ—†λŠ” λ³€κ²½
refactor μ½”λ“œ λ¦¬νŒ©ν† λ§
test ν…ŒμŠ€νŠΈ μ½”λ“œ μΆ”κ°€ 및 μˆ˜μ •
chore λΉŒλ“œ μž‘μ—…, νŒ¨ν‚€μ§€ λ§€λ‹ˆμ € μ„€μ • λ“± 기타 λ³€κ²½

πŸ“Œ 컀밋 μ˜ˆμ‹œ

feat: 둜그인 폼 λ§ˆν¬μ—… 및 κΈ°λ³Έ μŠ€νƒ€μΌ μΆ”κ°€
fix: 둜그인 μ‹€νŒ¨ μ‹œ μ—λŸ¬ λ©”μ‹œμ§€ ν‘œμ‹œ 였λ₯˜ μˆ˜μ •
docs: README에 μ„€μΉ˜ κ°€μ΄λ“œ μΆ”κ°€
style: μ½”λ“œ μ •λ ¬ 및 λΆˆν•„μš”ν•œ 곡백 제거
refactor: auth 헬퍼 둜직 뢄리 및 ν•¨μˆ˜ν™”
test: 둜그인 μœ λ‹› ν…ŒμŠ€νŠΈ μΆ”κ°€
chore: eslint μ„€μ • μΆ”κ°€ 및 적용

🚫 μ•ˆ 쒋은 컀밋 μ˜ˆμ‹œ

컀밋 λ©”μ‹œμ§€ μ—†μŒ
Update
fixing bug

βœ… 컀밋 μž‘μ„± 팁

  • λͺ…λ Ήν˜• 문체둜 μž‘μ„± (Added ❌ β†’ Add βœ…)
  • κ°„κ²°ν•˜λ©΄μ„œλ„ 의미 μžˆλŠ” λ©”μ‹œμ§€ μž‘μ„±
  • ν•˜λ‚˜μ˜ μ»€λ°‹μ—λŠ” ν•˜λ‚˜μ˜ λͺ©μ λ§Œ λ‹΄κΈ°