commit convention - connect-foundation/2019-07 GitHub Wiki
udacity์ convention์ base๋ก, ์ธ๋ถ์ ์ธ๊ฒ์ ํ๋ก์ ํธ์ ๋ง์ถ์ด ์์ ํ์์
๋ชจ๋ ๊ท์น์ ์๋ก๋ฅผ ๋ฐฐ๋ คํ๊ณ ์ดํดํ๊ธฐ ์ํด ์กด์ฌํ๋ค!
๋ชจ๋ commit์ ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ atomic ํ ๋จ์๋ก ์ํํ๋ค.
- ๋ง์ฝ stage ์ํ์ ํ์ผ๋ค์ด ์๋ก ์ฐ๊ด๋์ด ์์ด ์ฌ๋ฌ ๊ฐ์ commit์ผ๋ก ์ชผ๊ฐ๊ธฐ ํ๋ ๊ฒฝ์ฐ,
roll back ํ ๋ค์ atomicํ commit์ ๋ง๋ ๋ค. - ํ commit์ ๋ณ๊ฒฝ๋๋ ํ์ผ์ ๊ฐฏ์๋ 10๊ฐ๊ฐ ๋์ง ์๋ ๊ฒ์ ์งํฅํ๋ค.
๋ค๋ง ์๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ธ๋ก ํ๋ค.
์์)
ํจ์, class์ ๋ณ๊ฒฝ์ผ๋ก ์ฐธ์กฐํ๊ณ ์๋ ๋ค๋ฅธ ํ์ผ๋ค๋ ์์ ๋๋ ๊ฒฝ์ฐ.
ํด๋๋ช
์ด ๋ณ๊ฒฝ๋์ด ํ๊บผ๋ฒ์ ํ์ผ์ด ์ญ์ ๋๊ฑฐ๋ ์์ฑ๋๋ ๊ฒฝ์ฐ.
!HOTFIX์ ๊ฒฝ์ฐ.
๋ฉ์์ง๋ ํฌ๊ฒ 4๊ฐ์ง ์์ญ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- ํ์
- ์ด์
- ๋ณธ๋ฌธ
- ๊ผฌ๋ฆฌ๋ง
ํ์
[์ ์ฉ ๋ฒ์]: ์ ๋ชฉ (1์ค)
\n
?: ์ด์ ์ค๋ช
(1์ค)
๋ณธ๋ฌธ(์ ํ ์ฌํญ)
\n
๊ผฌ๋ฆฌ๋ง(์ ํ ์ฌํญ)
ํ ์ค์ ๊ธธ์ด๋ 72์ ์ด๋ด๋ก ์ ํํ๋ค.
๋ด๋ถ์ ์ด์ ๋ฑ์ list๋ก ํํํด์ผ ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํํํ๋ค.
- ์์ 1
- ์์ 2
ํ์ ์ ํ๊ทธ์ ์ ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ, ํ๊ทธ๋ ์์ด๋ก ์ฐ๋ ์ฒซ ๋ฌธ์๋ ๋๋ฌธ์๋ก ํ๋ค.
ํ๊ทธ๋ ๋ค์๊ณผ ๊ฐ์ ์ข ๋ฅ๋ก ๊ตฌ๋ถ๋๋ค.
- ๊ธฐ๋ฅ
- ๊ฐ์
- ๊ทธ ์ธ
ํ๊ทธ ๋ค์๋ ": "๋ฅผ ๋ถ์ฌ ์ ๋ชฉ๊ณผ ๊ตฌ๋ณํ ์ ์๋๋ก ํ๋ค.
"ํ๊ทธ: ์ ๋ชฉ"์ ํํ์ด๋ฉฐ, : ๋ค์๋ง space๊ฐ ์์์ ์ ์ํ๋ค.
ํ๊ทธ ์ด๋ฆ | ์ค๋ช |
---|---|
Feat | ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒฝ์ฐ |
Fix | ๋ฒ๊ทธ๋ฅผ ๊ณ ์น ๊ฒฝ์ฐ |
Design | CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ |
!BREAKING CHANGE | ์ปค๋ค๋ API ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ |
!HOTFIX | ๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผํ๋ ๊ฒฝ์ฐ |
Style | ์ฝ๋ ํฌ๋งท ๋ณ๊ฒฝ, ์ธ๋ฏธ ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ ์ด ์๋ ๊ฒฝ์ฐ |
Refactor | ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง |
Comment | ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ |
Docs | ๋ฌธ์๋ฅผ ์์ ํ ๊ฒฝ์ฐ |
Test | ํ ์คํธ ์ถ๊ฐ, ํ ์คํธ ๋ฆฌํฉํ ๋ง(ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ X) |
Chore | ๋น๋ ํ์คํฌ ์ ๋ฐ์ดํธ, ํจํค์ง ๋งค๋์ ๋ฅผ ์ค์ ํ๋ ๊ฒฝ์ฐ(ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ X) |
Rename | ํ์ผ ํน์ ํด๋๋ช ์ ์์ ํ๋ ๊ฒฝ์ฐ |
Remove | ํ์ผ์ ์ญ์ ํ๋ ๊ฒฝ์ฐ |
์์ธํ ๋ณด๊ธฐ
-
Feat
: ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒฝ์ฐ -
Fix
: ๋ฒ๊ทธ๋ฅผ ๊ณ ์น ๊ฒฝ์ฐ -
Design
: CSS๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ -
!BREAKING CHANGE
: ์ปค๋ค๋ API ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ- API์ arguments, return ๊ฐ์ ๋ณ๊ฒฝ
- DB์ ํ ์ด๋ธ ๋ณ๊ฒฝ
-
!HOTFIX
: ๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผ ํ๋ ๊ฒฝ์ฐ
์ถ๊ฐ์ ์ธ ๋ฌธ๋งฅ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๊ดํธ ์์ ์ ์ ์ ์๋ค.
์์)
"Feat(navigation):"
"Fix(database):"
BREAKING CHANGE๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๊ผฌ๋ฆฟ๋ง Related์ ์ฐ๊ด commit ๋ฒํธ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์งํฅํ๋ค.
์ด ๋ณํ๋ก ์ํฅ์ ๋ฐ๋ commit์ ํ์ ํ๊ธฐ ์ํจ
BREAKING CHANGE์ดํ ๋ณ๊ฒฝ๋ API์ ๋ง์ถฐ ์์ ํ๋ ์ฝ๋์ commit์๋ "Fix"๋ฅผ ๋ถ์ธ๋ค.
-
Style
: ์ฝ๋ ํฌ๋งท ๋ณ๊ฒฝ, ์ธ๋ฏธ ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ ์ด ์๋ ๊ฒฝ์ฐ -
Refactor
: ํ๋ก๋์ ์ฝ๋ ๋ฆฌํฉํ ๋ง- ์๋ก์ด ๊ธฐ๋ฅ์ด๋ ๋ฒ๊ทธ ์์ ์์ด ํ์ฌ ๊ตฌํ์ ๊ฐ์
-
Comment
: ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ
Style์ ๊ฒฝ์ฐ ์คํ ์์ , ํญ ์ฌ์ด์ฆ ๋ณ๊ฒฝ, ๋ณ์๋ช ๋ณ๊ฒฝ ๋ฑ์ ํด๋น๋๋ค.
Refactor์ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋ง ํ๋ ๊ฒฝ์ฐ ํด๋น๋๋ค.
-
Docs
: ๋ฌธ์๋ฅผ ์์ ํ ๊ฒฝ์ฐ -
Test
: ํ ์คํธ ์ถ๊ฐ, ํ ์คํธ ๋ฆฌํฉํ ๋ง (ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ ์์) -
Chore
: ๋น๋ ํ์คํฌ ์ ๋ฐ์ดํธ, ํจํค์ง ๋งค๋์ ์ค์ ํ ๊ฒฝ์ฐ (ํ๋ก๋์ ์ฝ๋ ๋ณ๊ฒฝ ์์) -
Rename
: ํ์ผ ํน์ ํด๋๋ช ์ ์์ ํ๋ ๊ฒฝ์ฐ -
Remove
: ์ฌ์ฉํ์ง ์๋ ํ์ผ ํน์ ํด๋๋ฅผ ์ญ์ ํ๋ ๊ฒฝ์ฐ.
Docs์ ๊ฒฝ์ฐ README.md ์์ ๋ฑ์ ํด๋น๋๋ค.
Test๋ test ํด๋ ๋ด๋ถ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋ ๊ฒฝ์ฐ์๋ง ํด๋นํ๋ค.
Chore์ ๊ฒฝ์ฐ package.json์ ๋ณ๊ฒฝ์ด๋ dotenv์ ์์ ๋ณ๊ฒฝ ๋ฑ, ๋ชจ๋์ ๋ณ๊ฒฝ์ ํด๋น๋๋ค.
์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์งง์ ์์ฝ์ ๋ํ๋ธ๋ค.
- ์ ๋ชฉ์ ์ฒ์์ ๋์ฌ ์ํ์ผ๋ก ์์ํ๋ค.
- ์ด ๊ธ์ ์๋ 50์ ์ด๋ด๋ก. (์ด์ ๋ชจ๋ํฐ ์ต๋ ์ถ๋ ฅ ํฌ๊ธฐ์ธ๋ฏ)
- ๋ง์ง๋ง์ ๋ง์นจํ(.)๋ฅผ ๋ถ์ด์ง ์๋๋ค.
์์ด์ ๊ฒฝ์ฐ ๋ค์์ ๊ท์น์ ๋ฐ๋ฅธ๋ค.
- ์์ด๋ก ์์ฑํ ๊ฒฝ์ฐ ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก ์์ฑํ๋ค.
- "Fix", "Add", "Change"์ ๋ช ๋ น์ด๋ก ์์ํ๋ค.
ํ๊ธ์ ๊ฒฝ์ฐ ๋ค์์ ๊ท์น์ ๋ฐ๋ฅธ๋ค.
- "๊ณ ์นจ", "์ถ๊ฐ", "๋ณ๊ฒฝ"์ ๋ช ๋ น์ด๋ก ์์ํ๋ค.
์์)
"์์ ๋ณ์๋ช
"
"Fix typo"
"์ถ๊ฐ get data api ํจ์"
์ด๋ฒ commit์ ๋ชฉ์ ๊ณผ, ์ด๋ค ์ ์ด ๋ฌ๋ผ์ก๋์ง๋ฅผ ์ค๋ช ํ๋ ๋ถ๋ถ.
- ํ๊ทธ๋ก
?:
๋ฅผ ๋ถ์ธ๋ค. - 1์ค๋ก ์์ฝํด์ ๊ธฐ์ ํ๋ค.
- ์์ธํ ๋ด์ฉ์ด ํ์ํ ๊ฒฝ์ฐ ๋ณธ๋ฌธ์ ๊ฐ์ํ๋ค.
์์)
"?: ๋ฐฐ์ด์์ ๋ชจ๋ ์์๋ฅผ ํ์ํด์ผ ํ๋ฏ๋ก reduce๋ก ๊ตฌํ."
์ปค๋ฐ์ ์์ธ ๋ด์ฉ
- ๋ณธ๋ฌธ์ ํ ์ค์ 72์ ์ด๋ด๋ก ์์ฑํ๋ค.
- ํ ์ค์ ๋์ ๋ฌธ๋จ์ผ๋ก ๋๋๊ฑฐ๋ ๋ถ๋ฆฟ(Bullet,
โข
)์ ์ฌ์ฉํด ๋ด์ฉ์ ๊ตฌ๋ถํ๋ค.- ๋ฌธ๋จ์ ๋๋ ์ ๊ฐํ(\n)์ผ๋ก ๋น ์ค์ ์ถ๊ฐํ๋ค.
- ๊ธด ์ปค๋ฐ ๋ณธ๋ฌธ์ ์งง์ ์ค๋ช ๋ค์์ ์์นํ๋ค.
๊ผฌ๋ฆฌ๋ง์ ์ปค๋ฐ์ ๋ํ ๋ฉํ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
- ๊ด๋ จ ์๋ PR, ๋ฆฌ๋ทฐ์ด, BREAKING CHANGES, ์ด์ ํธ๋์ปค ID
- ํ ์ค์ ํ๋์ ๋ฉํ ์ ๋ณด.
์ปค๋ฐ ๋ฉ์์ง๋ก Github ์ด์(issue)๋ฅผ ์๋ ์ข ๋ฃ์ํฌ ๊ฒฝ์ฐ ๊ผฌ๋ฆฌ๋ง์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํ๋ค.
ํค์๋ #์ด์๋ฒํธ
ํค์๋ ์ข ๋ฅ
- close
- closes
- closed
- fix
- fixes
- fixed
- resolve
- resolves
- resolved
close ๊ณ์ด : ์ผ๋ฐ ๊ฐ๋ฐ ์ด์
fix ๊ณ์ด : ๋ฒ๊ทธ ํฝ์ค, ํซ ํฝ์ค ์ด์
resolve ๊ณ์ด : ๋ฌธ์๋ ์์ฒญ ์ฌํญ์ ๋์ํ ์ด์
ํ์ฌ commit๊ณผ ์ฐ๊ด๋ commit์ ๋ํ๋ด๊ณ ์ ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ๊ธฐํ๋ค.
Related: commit๋ฒํธ, commit๋ฒํธ
commitlint๋ฅผ ์ ์ฉํด ํ์ ์ ์์ฑํ ์ ํด๋น ๊ท์น์ ์งํค๋๋ก ๋ ธ๋ ฅํ๋ค.
- "ํ์ : ์ ๋ชฉ"์ lint๋ก ๊ฒ์ฌํ๋ค.
- ํต๊ณผํ ๊ฒฝ์ฐ git commit์ ์ํํ๋ค.
commit -m ์ผ๋ก commitํ์ง ์๋๋ค.
- 72์ ์ ํ์ ์งํค๊ธฐ ์ด๋ ค์์ง๋ค.
- commit์ด ๊ธธ์ด์ง ์, ์ด์ ๋ด์ฉ์ ์์ ํ๊ธฐ ์ด๋ ค์์ง๋ค.
commit ์์ฑ tool์ ์ดํ์ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๋ค.
- notepad++ (windows)
- ์ด ํ์์ผ๋ก 72์ ์ ํ์ ํ๋ค.
- vim
git log๋ณด๋ค๋ ์๋์ ์ปค์คํ ๋ช ๋ น์ ์ถ๊ฐํ๋ ๊ฒ์ ์งํฅํ๋ค.
git config --global alias.lg "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold red)%h%C(reset) : %C(bold green)(%ar)%C(reset) - %C(cyan)<%an>%C(reset)%C(bold yellow)%d%C(reset)%n%n%w(90,1,2)%C(white)%B%C(reset)%n'"
๋ค์ ๋ช ๋ น์ ์ถ๊ฐํ ๊ฒฝ์ฐ, "git lg"๋ฅผ ํตํด log๋ฅผ ๋ณผ ์ ์๋ค.