# 🏷️ Git νƒœκ·Έ μž‘μ„± 및 톡합 μ—…λ°μ΄νŠΈ 관리 κ·œμΉ™ 이 λ¬Έμ„œλŠ” Smart IMS ν”Œλž«νΌμ˜ μžλ™ μ—…λ°μ΄νŠΈ 엔진이 μΈμ‹ν•˜λŠ” **Git νƒœκ·Έ μž‘μ„± κ·œμΉ™**κ³Ό 기본적인 **Git λͺ…λ Ήμ–΄** ν™œμš©λ²•μ„ μ„€λͺ…ν•©λ‹ˆλ‹€. λ³Έ ν”Œλž«νΌμ€ Git νƒœκ·Έμ˜ λ©”μ‹œμ§€λ₯Ό μžλ™μœΌλ‘œ νŒŒμ‹±ν•˜μ—¬ 관리 νŽ˜μ΄μ§€μ˜ μ—…λ°μ΄νŠΈ νžˆμŠ€ν† λ¦¬λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. --- ## 1. νƒœκ·Έ λ©”μ‹œμ§€ μž‘μ„± κ·œμΉ™ (Convention) ν”Œλž«νΌμ˜ μ—…λ°μ΄νŠΈ 엔진은 νƒœκ·Έ λ©”μ‹œμ§€μ˜ **머리말(Prefix)**κ³Ό **리슀트 기호(`-`, `*`)**λ₯Ό λΆ„μ„ν•©λ‹ˆλ‹€. ### πŸ“‹ λ©”μ‹œμ§€ ꡬ쑰 ```text [TYPE] μ—…λ°μ΄νŠΈ 제λͺ© (ν•œ 쀄 μš”μ•½) - 상세 λ³€κ²½ λ‚΄μš© 1 - 상세 λ³€κ²½ λ‚΄μš© 2 * 상세 λ³€κ²½ λ‚΄μš© 3 ``` ### 🏷️ μ—…λ°μ΄νŠΈ νƒ€μž… (TYPE) μ •μ˜ λ©”μ‹œμ§€ 첫 쀄에 μ•„λž˜ λŒ€κ΄„ν˜Έ ν‚€μ›Œλ“œλ₯Ό ν¬ν•¨ν•˜λ©΄ 관리 νŽ˜μ΄μ§€μ—μ„œ μ‹œκ°μ μœΌλ‘œ κ΅¬λΆ„λ©λ‹ˆλ‹€. | ν‚€μ›Œλ“œ | μ—…λ°μ΄νŠΈ μœ ν˜• | μ‹œκ°μ  ν‘œμ‹œ | λΉ„κ³  | |:--- |:--- |:--- |:--- | | `[URGENT]` | **κΈ΄κΈ‰/λ³΄μ•ˆ** | 빨간색 λ°°λ„ˆ | μ΅œμš°μ„  μ—…λ°μ΄νŠΈ ꢌμž₯ | | `[HOTFIX]` | **κΈ΄κΈ‰ μˆ˜μ •** | 빨간색 λ°°λ„ˆ | 버그 μ¦‰μ‹œ μˆ˜μ • 건 | | `[FEATURE]` | **κΈ°λŠ₯ μΆ”κ°€** | 남색(Indigo) | μƒˆλ‘œμš΄ κΈ°λŠ₯ λ„μž… | | `[FIX]` | **일반 μˆ˜μ •** | νšŒμƒ‰(Slate) | 일반적인 버그 μˆ˜μ • | | `[PATCH]` | **패치/보정** | νšŒμƒ‰(Slate) | λ§ˆμ΄λ„ˆ ν’ˆμ§ˆ κ°œμ„  | --- ## 2. 릴리즈 배포 절차 (λͺ…λ Ήμ–΄) μƒˆλ‘œμš΄ 버전을 배포할 λ•ŒλŠ” μ•„λž˜ μˆœμ„œλŒ€λ‘œ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•©λ‹ˆλ‹€. ### STEP 1: μ½”λ“œ λ³€κ²½ 사항 컀밋 ```powershell git add . git commit -m "컀밋 λ©”μ‹œμ§€ (νƒœκ·Έμ™€ λ³„κ°œ)" git push origin main ``` ### STEP 2: μ–΄λ…Έν…Œμ΄ν‹°λ“œ νƒœκ·Έ(Annotated Tag) 생성 μ‹œμŠ€ν…œ 엔진이 λ©”μ‹œμ§€λ₯Ό 읽으렀면 λ°˜λ“œμ‹œ `-a` μ˜΅μ…˜μ„ μ‚¬μš©ν•˜λŠ” **Annotated Tag**μ—¬μ•Ό ν•©λ‹ˆλ‹€. ```powershell # μ˜ˆμ‹œ: v0.3.5 버전 배포 μ‹œ git tag -a v0.3.5 -m "[FEATURE] λ³΄κ³ μ„œ 좜λ ₯ κΈ°λŠ₯ λ„μž… - μžμ‚° 상세 νŽ˜μ΄μ§€ PDF μ €μž₯ κΈ°λŠ₯ μΆ”κ°€ - μ •λΉ„ 이λ ₯ μ—‘μ…€ 내보내기 ν•„ν„° 보강 - μΈμ‡„μš© μŠ€νƒ€μΌ μ‹œνŠΈ μ΅œμ ν™”" ``` ### STEP 3: 원격 μ €μž₯μ†Œμ— νƒœκ·Έ ν‘Έμ‹œ ```powershell # νŠΉμ • νƒœκ·Έλ§Œ ν‘Έμ‹œ git push origin v0.3.5 # μƒμ„±λœ λͺ¨λ“  둜컬 νƒœκ·Έ ν‘Έμ‹œ git push origin --tags ``` --- ## 3. μœ μš©ν•œ Git λͺ…λ Ήμ–΄ 레퍼런슀 ### πŸ” 쑰회 κ΄€λ ¨ * **νƒœκ·Έ λͺ©λ‘ 확인**: `git tag -l` * **νŠΉμ • νƒœκ·Έμ˜ 상세 λ©”μ‹œμ§€ 확인**: `git show v0.3.5` * **μ΅œμ‹  νƒœκ·Έ 정보 확인**: `git describe --tags --abbrev=0` ### πŸ› οΈ 관리 κ΄€λ ¨ * **νƒœκ·Έ μ‚­μ œ (둜컬)**: `git tag -d v0.3.5` * **νƒœκ·Έ μ‚­μ œ (원격)**: `git push origin :refs/tags/v0.3.5` * **μ‹€μˆ˜λ‘œ νƒœκ·Έ λ©”μ‹œμ§€λ₯Ό 잘λͺ» μ μ—ˆμ„ λ•Œ (μˆ˜μ •)**: ```powershell git tag -a v0.3.5 -f -m "[FIX] μˆ˜μ •λœ λ©”μ‹œμ§€ λ‚΄μš©..." git push origin v0.3.5 -f ``` --- ## πŸ’‘ μ£Όμ˜μ‚¬ν•­ 1. **버전 λ„˜λ²„λ§**: `v0.0.0` ν˜•μ‹μ„ ꢌμž₯ν•©λ‹ˆλ‹€ (예: `v0.3.4`). 2. **No-Cache**: νƒœκ·Έ ν‘Έμ‹œ ν›„ 관리 νŽ˜μ΄μ§€μ—μ„œ μ¦‰μ‹œ ν™•μΈλ˜μ§€ μ•ŠλŠ” 경우, νŽ˜μ΄μ§€ μƒλ‹¨μ˜ 'μƒˆλ‘œκ³ μΉ¨' μ•„μ΄μ½˜μ„ 눌러 원격 μ €μž₯μ†Œμ™€ λ™κΈ°ν™”ν•˜μ„Έμš”. 3. **λ‚΄μš© μž…λ ₯**: `-` λ˜λŠ” `*` 기호λ₯Ό μƒλž΅ν•˜λ©΄ ν•΄λ‹Ή 쀄은 κ°œλ³„ 리슀트 ν•­λͺ©μœΌλ‘œ μΈμ‹λ˜μ§€ μ•Šκ³  λ­‰μ³μ„œ ν‘œμ‹œλ  수 μžˆμŠ΅λ‹ˆλ‹€.