main (λ°°ν¬/Production) λΈλμΉ
μ΅μ’
λ°°ν¬ κ°λ₯ν μνλ§ μ μ§
devμμ μΆ©λΆν ν
μ€νΈλ λ΄μ©λ§ Merge
dev (κ°λ°/Dev) λΈλμΉ
λ€μ λ°°ν¬λ₯Ό μν΄ κ°λ°λ κΈ°λ₯λ€μ΄ λͺ¨μ΄λ κ³³
νμ λΉλ λ° λ°°ν¬ κ°λ₯ν μν μ μ§
feat/#1 (κΈ°λ₯/Feature) λΈλμΉ
devμμ λΆκΈ°νμ¬ μλ‘μ΄ κΈ°λ₯ κ°λ°
μμ
μλ£ ν devλ‘ PR
πͺ΅ Branch Naming Convention
νμ: {header}/{issue-number}
μμ: feat/#5 fix/#11 refactor/#23
π‘ Issue & Pull Request (PR) Rules
Assigneesμ λ³ΈμΈμ μ ννλμ?
컨벀μ
μ λ§λ Type μ ν
Assigneesμ λ³ΈμΈμ μ ννλμ?
컨벀μ
μ λ§λ Labels μ ν
Developmentμ μ΄μ μ°λ
Merge λΈλμΉ νμΈ (dev)
컨벀μ
μ€μ
λ‘컬 μ€ν μ μλ¬ μμ
Merge: Squash and Merge μ¬μ©
μ λͺ© μμ) #2 [chore] μ΄μ λ° PR ν
νλ¦Ώ μΆκ°
Merge μλ£ ν λΈλμΉ μλ μμ
β¨οΈ Commit Message Convention
Category
Type
Description
π Feature
β¨ Feat
μλ‘μ΄ κΈ°λ₯ μΆκ°
π Feature
π₯ Breaking Change
νμ νΈνμ± μλ ν° API λ³κ²½
π Bug
π Fix
λ²κ·Έ μμ
π Bug
π Hotfix
κΈ΄κΈ μΉλͺ
μ λ²κ·Έ μμ
π Task
π¨ Chore
λΉλ μ
무, ν¨ν€μ§ μ€μ , .gitignore μμ λ±
π Task
π· CICD
CI/CD νμ΄νλΌμΈ λ° λ°°ν¬ κ΄λ ¨
π Task
β»οΈ Refactor
μ½λ 리ν©ν λ§ (κΈ°λ₯ λ³κ²½ μμ)
π Task
π Style
μ½λ ν¬λ§·ν
, μΈλ―Έμ½λ‘ λλ½ λ± (λ‘μ§ λ³κ²½ μμ)
π Task
π‘ Comment
μ£Όμ μΆκ° λ° λ³κ²½
π Task
π·οΈ Rename
νμΌ/ν΄λλͺ
μμ λλ μ΄λ
π Task
π₯ Remove
νμΌ μμ
π Task
π Init
νλ‘μ νΈ μ΄κΈ° μΈν
π Task
π Merge
λΈλμΉ λ³ν©
π Task
π§ͺ Test
ν
μ€νΈ μ½λ μΆκ°/μμ
π Task
π Docs
λ¬Έμ μμ (README, Wiki λ±)
1. μ΅μ μ½λ λΆλ¬μ€κΈ° (Update)
μμ
μ νμ dev λΈλμΉ μ΅μ μν μ μ§
μμ
μ€μΌ λ (Stash νμ©):
git stash # μμ
μ€μΈ μ½λ μμ μ μ₯
git pull origin dev # μ격 dev λΈλμΉ λ΄μ© λΉκ²¨μ€κΈ°
git stash pop # μμ μ μ₯νλ μ½λ λ€μ κ°μ Έμ€κΈ°
μμ
μ€μΈ λ΄μ©μ΄ μμ λ:
git pull origin dev # μ격 dev λΈλμΉ λ΄μ© λΉκ²¨μ€κΈ°
μμ
λͺ©μ μ λ§λ λ
립 λΈλμΉ μμ± ν μμ
μμ
# νμ: {type}/#{issue-number}
git checkout -b feat/#1
3. μμ
λ° μ»€λ° (Commit)
- IDE Commit UI νμ©
- git add . λλ λ
Όλ¦¬μ λ¨μ 컀λ°
- μ»€λ° λ©μμ§ : Commit Message Convention μ€μ
μμ
μλ£ ν λΈλμΉλ₯Ό μ격 μ μ₯μμ μ
λ‘λ
git push origin {μμ±ν-λΈλμΉ-λͺ
}
# μ: git push origin feat/#1
com.swyp.app
βββ AppApplication.java
β
βββ domain
β
βββ infra