Git ๋ธ๋์น ๋ค์ด๋ฐ ์ปจ๋ฒค์
๊ธฐ๋ณธ ์์น (๊ณตํต)
โข
์๋ฌธ์ ์ฌ์ฉ
โข
๋จ์ด ๊ตฌ๋ถ์ /์ - ์ฌ์ฉ
โข
์๋ฏธ๊ฐ ํ๋์ ๋ณด์ด๊ฒ
๊ธฐ๋ณธ ๊ตฌ์กฐ (ํ์ค)
<type>/<scope>-<description>
Plain Text
๋ณต์ฌ
์์
feature/auth-login
fix/order-payment
refactor/user-service
Plain Text
๋ณต์ฌ
๋ธ๋์น ํ์
(๊ฐ์ฅ ์ค์)
ํ์
| ์ฉ๋ | ์์ |
main | ๋ฐฐํฌ ๊ธฐ์ค | main |
develop | ๊ฐ๋ฐ ํตํฉ | develop |
feature | ๊ธฐ๋ฅ ๊ฐ๋ฐ | feature/signup |
fix | ๋ฒ๊ทธ ์์ | fix/login-error |
hotfix | ๊ธด๊ธ ์์ | hotfix/payment |
refactor | ๋ฆฌํฉํ ๋ง | refactor/auth |
test | ํ
์คํธ | test/user-api |
docs | ๋ฌธ์ | docs/readme |
chore | ๊ธฐํ | chore/gradle-update |
release | ๋ฐฐํฌ ์ค๋น | release/1.0.0 |
Scope & Description ์์ฑ๋ฒ
โข
๊ธฐ๋ฅ/๋ชจ๋/์ด์ ์ค์ฌ
โข
๋์ฌ
, ๋ช
์ฌ/์๋ฏธ ์ค์ฌ 
feature/user-profile
fix/session-timeout
Plain Text
๋ณต์ฌ
์ด์ ๋ฒํธ ํฌํจ (ํ์
๊ถ์ฅ)
feature/123-login
fix/#45-null-pointer
Plain Text
๋ณต์ฌ
๋๋
feature/login-123
Plain Text
๋ณต์ฌ
์ค๋ฌด์์ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ํจํด
Git Flow
main
develop
feature/*
release/*
hotfix/*
Plain Text
๋ณต์ฌ
GitHub Flow (๋จ์)
main
feature/*
fix/*
Plain Text
๋ณต์ฌ
ํผ์ ํ๋ก์ ํธ (์ถ์ฒ)
main
feature/*
Plain Text
๋ณต์ฌ
ํผํด์ผ ํ ๋ค์ด๋ฐ
test1
mybranch
aaa
temp
Plain Text
๋ณต์ฌ
์์ ๋ชจ์
feature/login
feature/signup-email
fix/auto-login
hotfix/security-patch
refactor/db-structure
docs/api-guide
Plain Text
๋ณต์ฌ
ํ ์ค ์์ฝ
๋ธ๋์น ์ด๋ฆ๋ง ๋ด๋ "๋ฌด์จ ์์
์ธ์ง" ์ ์ ์์ด์ผ ํ๋ค
main / stage / develop ๋ธ๋์น ์ ๋ต
graph LR
A["develop<br/>๊ฐ๋ฐ"] --> B["stage<br/>๊ฒ์ฆ"]
B --> C["main<br/>์ด์"]
style A fill:#4CAF50,color:#fff
style B fill:#FF9800,color:#fff
style C fill:#F44336,color:#fffMermaid
๋ณต์ฌ
๊ธฐ๋ณธ ๋ธ๋์น ๊ตฌ์กฐ (3๋จ๊ณ)
main โ ์ด์(Production)
stage โ ์คํ
์ด์ง / ๊ฒ์ฆ(QA)
develop โ ๊ฐ๋ฐ ํตํฉ
Plain Text
๋ณต์ฌ
๊ฐ ๋ธ๋์น ์ญํ
main
โข
์ค์ ์๋น์ค ์ด์ ๋ธ๋์น
โข
๋ฐฐํฌ ์ด๋ ฅ๋ง ์กด์ฌ
โข
์ง์ ์ปค๋ฐ 
stage
โข
์ด์ ๋ฐฐํฌ ์ ์ต์ข
๊ฒ์ฆ
โข
QA / ๊ธฐํ / ๊ณ ๊ฐ ํ
์คํธ
โข
์ด์๊ณผ ํ๊ฒฝ ๊ฑฐ์ ๋์ผ
develop
โข
๊ฐ๋ฐ์๋ค์ด ๊ธฐ๋ฅ์ ํฉ์น๋ ๋ธ๋์น
โข
feature ๋ณํฉ ๋์
์์
๋ธ๋์น ๊ท์น
๊ธฐ๋ฅ ๊ฐ๋ฐ
feature/login
feature/signup
Plain Text
๋ณต์ฌ
๋ฒ๊ทธ ์์
fix/session-timeout
Plain Text
๋ณต์ฌ
๊ธด๊ธ ์ด์ ์์
hotfix/payment-error
Plain Text
๋ณต์ฌ
๋ธ๋์น ํ๋ฆ (์ค์)
feature/* โ develop
develop โ stage
stage โ main
Plain Text
๋ณต์ฌ
feature/login โ develop
develop โ stage
stage โ main
Plain Text
๋ณต์ฌ
๋ฐฐํฌ & ๋ณํฉ ์ ๋ต
๋จ๊ณ | ๋ฐฉ์ |
feature โ develop | merge / rebase |
develop โ stage | merge commit |
stage โ main | merge commit |
hotfix โ main | merge commit |
๋ฒ์ ํ๊ทธ (๊ถ์ฅ)
git tag -a v1.2.0 -m "Release v1.2.0"
git push origin v1.2.0
Bash
๋ณต์ฌ
๋ค์ด๋ฐ ์ปจ๋ฒค์
์์ฝ
main
stage
develop
feature/*
fix/*
hotfix/*
release/*
Plain Text
๋ณต์ฌ
์ค๋ฌด์์ ์ด ๊ตฌ์กฐ๊ฐ ์ข์ ์ด์
โข
๋ฐฐํฌ ์ฌ๊ณ ์ต์ํ
โข
QA ๋จ๊ณ ๋ช
ํ
โข
๋กค๋ฐฑ ์ฌ์
โข
CI/CD ํ์ดํ๋ผ์ธ ๋ถ๋ฆฌ ๊ฐ๋ฅ
์์ CI/CD ๋งคํ (์ฐธ๊ณ )
๋ธ๋์น | ๋ฐฐํฌ |
develop | ๊ฐ๋ฐ ์๋ฒ |
stage | ์คํ
์ด์ง ์๋ฒ |
main | ์ด์ ์๋ฒ |
ํ ์ค ์์ฝ
graph LR
A["develop<br/>๊ฐ๋ฐ"] --> B["stage<br/>๊ฒ์ฆ"]
B --> C["main<br/>์ด์"]
style A fill:#4CAF50,color:#fff
style B fill:#FF9800,color:#fff
style C fill:#F44336,color:#fffMermaid
๋ณต์ฌ
graph TD
A["feature/*"] -->|merge| B["develop"]
B -->|๊ฒ์ฆ ์์ฒญ| C["stage"]
C -->|์ต์ข
์น์ธ| D["main"]
D -->|๊ธด๊ธ ์์ | E["hotfix/*"]
E -->|์ฆ์ ๋ฐฐํฌ| D
E -.->|๋ฐ์| B
style B fill:#4CAF50
style C fill:#FF9800
style D fill:#F44336
style A fill:#2196F3
style E fill:#9C27B0Mermaid
๋ณต์ฌ
์ด ๊ตฌ์กฐ๋
SI / ์ธ์ฃผ / ๊ธฐ์
ํ๋ก์ ํธ์์ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ํจํด์
๋๋ค.



