Git Branch & Commit Message Convention - nhnacademy-be10-WannaB/wannab-wiki GitHub Wiki
{type}/{issue-number}/{short-description}
ex)
(๋์ด์ฐ๊ธฐ X, - ์ ์ฌ์ฉํฉ๋๋ค.)
feature/issue-123/login-api
bugfix/issue-198/fix-navbar
hotfix/issue-1201/critical-error
refactor/issue-1305/optimize-query
test/issue-1401/unit-test-taskservice
chore/issue-1600/update-dependencies
ํ์ | ์๋ฏธ | ์์ |
---|---|---|
feature/ | ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ | feature/issue-123/login-api |
bugfix/ | ์ผ๋ฐ์ ์ธ ๋ฒ๊ทธ ์์ | bugfix/issue-198/fix-navbar |
hotfix/ | ๋ฐฐํฌ ์ดํ ๊ธด๊ธ ์์ | hotfix/issue-1201/critical-error |
refactor/ | ๋ฆฌํฉํ ๋ง (๊ธฐ๋ฅ ๋ณํ ์์) | refactor/issue-1305/optimize-query |
test/ | ํ ์คํธ ์ฝ๋ ์์ฑ/์์ | test/issue-1401/unit-test-taskservice |
docs/ | ๋ฌธ์ ์์ | docs/issue-1501/readme-update |
chore/ | ์ค์ , ๋น๋, ํจํค์ง ๋ฑ | chore/issue-1600/update-dependencies |
ํญ๋ชฉ | ๊ถ์ฅ |
---|---|
๊ตฌ๋ถ์ | / ์ฌ์ฉ (type/description) |
์๋ฌธ์ ์ฌ์ฉ | ๋์๋ฌธ์ ํผ์ฉ ์ง์ |
๊ณต๋ฐฑ ๋์ - | login-api, fix-header |
๊ธธ์ด๋ ์งง๊ฒ | ๋๋ฌด ๊ธธ๋ฉด ๊ฐ๋ ์ฑโ |
ํ ๋ด ์ผ๊ด์ฑ ์ ์ง | ๊ท์น ์ ํ๊ณ ๋ฌธ์ํ ํ์ |
์๊ฒฉ ์ ์ฅ์์์ ๋ด์ฉ์ ๋ก์ปฌ ์ ์ฅ์๋ก ๊ฐ์ ธ์จ๋ค
- ๋ก์ปฌ ์ ์ฅ์๊ฐ ์์ ์ : ์ ์ฅ์์ ๋ ํฌ์งํ ๋ฆฌ ์ HTTPS URL ์ด์ฉ

develop
๋ธ๋์น ์์ฑ ํ pull
$ git checkout -b develop
$ git pull origin develop
๋ก์ปฌ ์ ์ฅ์์์ ์์ ํ ๋ธ๋์น๋ฅผ ์์ฑ ํ ํด๋น ๋ธ๋์น๋ก ์ด๋ํ๋ค.
# ๋ก์ปฌ ์ ์ฅ์ branch ํธ์ถ (์ด๊ธฐ์๋ master, develop ํ์)
$ git branch
# ๋ธ๋์น ์์ฑ ๋ช
๋ น์ด
$ git branch ๋ธ๋์น์ด๋ฆ
$ git checkout ๋ธ๋์น ์ด๋ฆ
# ์์ ๋ช
๋ น์ด๋ฅผ ํ๋ฒ์ ์น๊ณ ์ถ์ผ๋ฉด :git checkout -b feature/issue-123/login-api
# ๋ธ๋์น ๋ค์ด๋ฐ ๊ท์น์ ์๋จ ๋ด์ฉ ์ฐธ๊ณ ex) f{type}/{issue-number}-{short-description}
- ์ฝ๋ ์์ฑ
# status๋ ๋จ์ํ git ๋ด์ฉ ํ์ธ
$ git status
$ git add .
# ์ปค๋ฐ ๋ฉ์์ง ์์ฑ
# (Closes #์ด์๋ฒํธ)๋ฅผ ํฌํจํ๋ฉด PR ๋จธ์ง ์ ์ด์ ์๋ ์ข
๋ฃ๋ฉ๋๋ค.
$ git commit -m "feat: login ํ์ด์ง ๊ตฌํ (Closes #123)"
# ์์
branch ์์ : feature/issue-123/login-api
# ์๊ฒฉ ์ ์ฅ์ branch ์์ฑ ํ
$ git push origin {์์
branch}
- ๊ธฐ๋ฅ์ด ๋๋ฌด ์ปค์ ํ ๋ฒ์ ๊ฐ๋ฐํ๊ธฐ ์ด๋ ต๊ฑฐ๋, ๊ฐ๋ฐ ์ปดํจํฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ
# WIP(Work In Progress)๋ฅผ commit message์ ์ถ๊ฐ
git commit -m "feat: WIP - Implement login validation (missing password hashing)"
- Github์์๋
pull request
ํํ ์ฌ์ฉ
# ๋ฐ๋์ develop๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๋ฌธ์ ์๊ฒจ์!!
$ git checkout develop
$ git status
$ git pull origin develop
- ๋ก์ปฌ ํ๊ฒฝ์์ ์์ฐ๋ ๋ธ๋์น๋ ์ญ์ ํฉ์๋ค. (
master, develop
) ์ ์ธ
- ๋ช ๋ น์ด
# ๋ก์ปฌ ๊น ๋ธ๋์น ํ์ธ
$ git branch
$ git branch -d feature/issue-123/login-api
- ๊ณผ์ ์ค์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ ๋ฐ๋์!! ๊ณต์ ํด์ผํฉ๋๋ค.
- ์ฐ๋ฆฌ ๋ชจ๋ ์ด๋ณด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ์ํฉ์ ํญ์ ๋๋นํด์ผํฉ๋๋ค.
- ํ๋ก์ ํธ ์ด๊ธฐ ๋จ๊ณ์์๋ ๋ณ๊ฒฝ๋ ์ฝ๋ ์ํฉ ๋ฐ ์งํ ์ํฉ ๋ฐ๋ก ์ ์ฅํด๋๊ฐ๋ฉด์ ํ๋ ๊ฒ๋ ์ถ์ฒ๋๋ ค์.
- Github์์ Pull Request ๋ฅผ ํตํด ๋จธ์ง ํฉ์น๊ธฐ๋ฅผ ์งํํฉ๋๋ค.
- ์ด๋ ๊ฐ๋ฅํ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ํจ๊ป ์งํํ๊ณ , Reviewer๋ฅผ ๋จ๊ฒจ์ฃผ์ธ์!
- GitHub PR ์์ด ์ง์ ๋ธ๋์น ๋ณํฉ์ด ํ์ํ ๊ฒฝ์ฐ, ์๋ ๊ฐ์ด๋๋ฅผ ํ ์ค์ฉ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐ๋ผ ์ฃผ์ธ์.
# 1. ํ์ฌ develop ๊ธฐ์ค์ผ๋ก ์์
git checkout develop
git fetch origin
2. ์ถฉ๋์ด ๋ฐ์ํ PR ๋ธ๋์น ์ฒดํฌ์์
git checkout -b your-feature-branch origin/your-feature-branch
3. ์ต์ develop ๋ธ๋์น ๋ด์ฉ ๋ณํฉ
git pull origin develop
4. IDE์์ ์ถฉ๋๋ ํ์ผ ์์
VSCode, IntelliJ ๋ฑ์์ ์ถฉ๋๋ ํ์ผ ์์
<<<<<<<, =======, >>>>>>> ๊ตฌ๊ฐ ์ ๋ฆฌ
5. ํด๊ฒฐ ํ ์ํ ํ์ธ
git status # ์์ ๋ ํ์ผ ๋ชฉ๋ก ํ์ธ
git add . # ์ถฉ๋ ํด๊ฒฐํ ํ์ผ ์คํ
์ด์ง
git commit -m "resolve merge conflict with develop"
git push origin your-feature-branch
- GitHub์ ๋ค์ ๋ค์ด๊ฐ๋ฉด PR์ ์ถฉ๋ ์ํ๊ฐ ํด๊ฒฐ๋ ๊ฑธ๋ก ๋ฐ๋๋๋ค.
- ์ดํ ํ์๋๋ก PR ๋ฆฌ๋ทฐ ๋ฐ ๋จธ์ง ์งํํฉ๋๋ค.
์ ๋ชฉ (Type: Subject)
์ปค๋ฐ ์ ํ | ์๋ฏธ |
---|---|
feat | ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
design | CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ |
docs | ๋ฌธ์ ์์ |
style | ์ฝ๋ formatting, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ฒด์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ |
!BREAKING CHANGE | ์ปค๋ค๋ API ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ |
comment | ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ |
rename | ํ์ผ ๋๋ ํด๋ ๋ช ์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์ ๋ง์ธ ๊ฒฝ์ฐ |
refactor | ์ฝ๋ ๋ฆฌํฉํ ๋ง |
remove | ํ์ผ์ ์ญ์ ํ๋ ์์ ๋ง ์ํํ ๊ฒฝ์ฐ |
test | ํ ์คํธ ์ฝ๋, ๋ฆฌํฉํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐ |
chore | ํจํค์ง ๋งค๋์ ์์ , ๊ทธ ์ธ ๊ธฐํ ์์ ex) .gitignore |
!HOTFIX | ๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผ ํ๋ ๊ฒฝ์ฐ |
fix | ๋ฒ๊ทธ ์์ |
- ์ ๋ชฉ์ 50๊ธ์ ์ด๋ด๋ก ์์ฑํ๋ค.
- ์๋ฌธ์๋ก ์์ฑํ๋ค.
- ๋ง์นจํ ๋ฐ ํน์๊ธฐํธ๋ ์ฌ์ฉํ์ง ์๋๋ค.
- ์๋ฌธ์ผ๋ก ์์ฑํ๋ ๊ฒฝ์ฐ ๋์ฌ(์ํ)์ ๊ฐ์ฅ ์์ ๋ช ๋ น์ด๋ก ์์ฑํ๋ค.
- ๊ณผ๊ฑฐ์์ ๋ ์ฌ์ฉํ์ง ์๋๋ค.
- ๊ฐ๊ฒฐํ๊ณ ์์ ์ ์ผ๋ก ์ฆ, ๊ฐ์กฐ์ ๊ตฌ๋ฌธ์ผ๋ก ์์ฑํ๋ค.
- ex)

์ด๋ค๊ธฐ๋ฅ์ ๊ตฌํํ๋์ง ๊ฐ๋จํ๊ฒ ์ค๋ช
์์ ์์ธ๋ด์ฉ ์ ์ด๋ค ์์ ์ ์ฌ์ฉํ๋์ง ์ ์ํ ๋ฆฌ๋ทฐ์ด๋ฅผ ์ง์ ํ์ Pull Request ๋ ๋ฆฌ๊ธฐ
โ๋ฆฌ๋ทฐ์ด๋ ์๊ธฐ ์๋ฆฌ๊ธฐ์ค ์์์ ์ฌ๋์ ์ง์ ํฉ๋๋ค.
git checkout -b {๋ธ๋์น ๋ช
}
{๋ธ๋์น ๋ช }์ ๋ง๋ค๊ณ ํด๋น ๋ธ๋์น๋ก ์ด๋ํ๋ค.
๋ธ๋์น๊ฐ ๋ง๋ค์ด์ง๊ณ ์ ์ด๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
git add .
git commit -m "์ปจ๋ฒค์
์ ๋ง๋ ์ปค๋ฐ ๋ฉ์์ง"
git push origin {๋ธ๋์น ๋ช
}
- master ๋ธ๋์น์์ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ํด์ผํ๋ค.
-
git checkout -b {๋ธ๋์น ๋ช }
์ผ๋ก ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ ์ด๋ํ ์ ์๋ค. - ๋ธ๋์น ๋ช ์ ์ ํ์ธํ์ธ์.
์ด๋ ํ git pull origin {๋ธ๋์น ๋ช
}
์ผ๋ก ํด๋น ๋ธ๋์น์ ์๋ฃ๋ฅผ ๋ด๋ ค๋ฐ์ ์ ์๋ค.