๐งฉ Git ์ ๋ต & ์ปจ๋ฒค์ โ
๋ฌผ๋ก ! ์๋์ฒ๋ผ ์กฐ๊ธ ๋ ์์ธํ๊ฒ, ์ Squash Merge๋ฅผ ์ฐ๋์ง์ ์ด๋ป๊ฒ ์งํํ๋์ง ๋จ๊ณ๋ณ๋ก ์ค๋ช ํด ๋ดค์ด.
๐ Squash Merge ์ ๋ต โ
๋ฉ์๋ณผ ํ์ Squash Merge ๋ฐฉ์์ ์ฑํํด ๊น๋ํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ปค๋ฐ ์ด๋ ฅ์ ์ ์งํฉ๋๋ค.
โ๏ธ Squash Merge๋? โ
- ์ฌ๋ฌ ๊ฐ์ ์ปค๋ฐ์ ํ๋์ ์ปค๋ฐ์ผ๋ก ํฉ์ณ์ ๋ณํฉํ๋ ๋ฐฉ์์ ๋๋ค.
- PR ํ๋๋น ์ต์ข ์ ์ผ๋ก ํ๋์ ์ปค๋ฐ ๊ธฐ๋ก๋ง ๋จ๊ฒ ๋์ด, ๊น๋ํ ํ์คํ ๋ฆฌ๋ฅผ ๋ง๋ญ๋๋ค.
- ๋ถํ์ํ ์ค๊ฐ ์ปค๋ฐ์ด๋ ์คํ์ ์ธ ์ปค๋ฐ ๋ฉ์์ง๊ฐ ํ์คํ ๋ฆฌ๋ฅผ ์ด์ง๋ฝํ์ง ์๋๋ก ๋ฐฉ์งํฉ๋๋ค.
โ๏ธ Squash Merge๋ฅผ ์ฌ์ฉํ๋ ์ด์ โ
- ๊ฐ๋ ์ฑ ํฅ์ ๋ณต์กํ ์ปค๋ฐ ๋ก๊ทธ ๋์ , ๊ธฐ๋ฅ ๋จ์๋ณ๋ก ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ์ ์ง๋ณด์ ์ฉ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ํ ๋์ ํ์ ๋์ด ๋ฒ๊ทธ ์์ ์ด๋ ๋กค๋ฐฑ ์์ ์ด ๋ ์ฝ์ต๋๋ค.
- PR ๋จ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ๋ณ PR์ด ํ๋์ ์ปค๋ฐ์ผ๋ก ์ ๋ฆฌ๋๋ฏ๋ก, ์ด๋ค PR์ด ์ด๋ค ๋ณ๊ฒฝ์ ํฌํจํ๋์ง ๋ช ํํฉ๋๋ค.
โ๏ธ Squash Merge ์งํ ์ ์ฐจ โ
feature ๋ธ๋์น์์ ์์ ์ ์๋ฃํฉ๋๋ค. ์ฌ๋ฌ ๊ฐ์ ์ปค๋ฐ์ ์์ ๋กญ๊ฒ ๋ง๋ค๊ณ ์์ ํฉ๋๋ค.
develop ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ์ ๋๊ธฐํ(rebase) ํฉ๋๋ค.
bashgit fetch origin git rebase origin/develop
- ์ต์
develop
๋ธ๋์น ๊ธฐ์ค์ผ๋ก ๋ด ์์ ์ ๋ค์ ์์ ์ฌ๋ ค, ์ปค๋ฐ ์ถฉ๋์ ์ต์ํํ๊ณ ํ์คํ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ์ ์งํฉ๋๋ค.
- ์ต์
PR(Pull Request)์ ์์ฑํ์ฌ ๋ฆฌ๋ทฐ๋ฅผ ์์ฒญํฉ๋๋ค.
๋ฆฌ๋ทฐ๊ฐ ์๋ฃ๋๋ฉด, Squash Merge๋ฅผ ์ ํํ์ฌ ๋ณํฉํฉ๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ ์ปค๋ฐ์ด ํ๋๋ก ํฉ์ณ์ ธ
develop
๋ธ๋์น์ ๋ณํฉ๋ฉ๋๋ค. - PR ์ ๋ชฉ์ด ์ต์ข ์ปค๋ฐ ๋ฉ์์ง๋ก ์ฌ์ฉ๋๋ฉฐ, ํ์ ์ ์์ธ ๋ด์ฉ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ ์ปค๋ฐ์ด ํ๋๋ก ํฉ์ณ์ ธ
โ๏ธ ์ฐธ๊ณ โ
- Squash Merge ์, ๊ฐ ์ปค๋ฐ์ ์ค๊ฐ ๋ฉ์์ง๋ ์ต์ข ํ์คํ ๋ฆฌ์ ๋จ์ง ์์ผ๋ ์ปค๋ฐ ๋ฉ์์ง์ ํต์ฌ ๋ด์ฉ์ ์ ์์ฑํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
- ํ์ ์ rebase์ Squash Merge ๊ท์น์ ๋ชจ๋ ์งํค๋ฉด, ๊น๋ํ ์ปค๋ฐ ๊ด๋ฆฌ์ ์ถฉ๋ ์ต์ํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๐ ๋น๊ต: ์ผ๋ฐ Merge vs Squash Merge โ
๋์ ํ โ
๐ ๋ธ๋์น ์ ๋ต โ
main
: ์ค์ง ๋ฐฐํฌ๋ฅผ ์ํ ๋ธ๋์นdevelop
: ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋ณํฉ๋๋ ๊ณตํต ๋ธ๋์น (๊ธฐ๋ณธ ๋ธ๋์น)feature/style ๋ฑ
: ์์ ๋จ์๋ณ ๊ธฐ๋ฅ ๋ธ๋์น
โ ์ 3๋ธ๋์น ์ ๋ต์ธ๊ฐ? โ
โ๏ธ ๋ฐฐํฌ ํ๋ก์ฐ (with Cloudflare) โ
main ๋ธ๋์น
โ Cloudflare Pages ์๋ ๋ฐฐํฌ- GitHub Actions๋ก ๋ณ๊ฒฝ ๊ฐ์ง ์, ๊ฐ์ธ ๋ ํฌ๋ก ์๋ ํธ์๋จ
โ Issue ํ ํ๋ฆฟ โ
- ์ ๋ชฉ:
feat: ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
ํ ํ๋ฆฟ ์ ๋ชฉ์
[๊ธฐ๋ฅ]
์ ์ปค๋ฐ ์ปจ๋ฒค์ ํค์๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑํฉ๋๋ค.
โ PR ํ ํ๋ฆฟ โ
- ์ ๋ชฉ:
feat: ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
## #๏ธโฃ Related Issue
Closes #
## โ๏ธ New Insight
<!-- ์๋กญ๊ฒ ์๊ฒ ๋ ๋ถ๋ถ์ ์ ์ด์ฃผ์ธ์ -->
## ๐ PR Point
<!-- ํธ๋ฌ๋ธ ์ํ
, ๊ณตํต ์ปดํฌ๋ํธ ์ฌ์ฉ ๋ฐฉ๋ฒ, ๊ณ ๋ฏผํ ๋ก์ง ๋ฑ -->
## ๐ธ Screenshot
<!-- UI ์์
์ ์ฒจ๋ถ ํ์ -->
PR์๋ ๋ฆฌ๋ทฐ์ด๊ฐ ๋งฅ๋ฝ์ ์ดํดํ ์ ์๋๋ก ์ต๋ํ ์์ธํ ์ ์ต๋๋ค. ํ์์๊ฒ ๋์์ด ๋ ๋ฆฌ๋ทฐ์๋
๊ตฟ ๋ฆฌ๋ทฐ
๋ผ๋ฒจ์ ๋ฌ์์ฃผ์ธ์! ๐ก
๐งท ์ปค๋ฐ ์ปจ๋ฒค์ โ
Type | ์ค๋ช |
---|---|
init | ์ด๊ธฐ ์ธํ |
setting | ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ (ํจํค์ง, config ๋ฑ) |
feat | ๊ธฐ๋ฅ ๊ฐ๋ฐ |
fix | ๋ฒ๊ทธ ์์ |
style | ์คํ์ผ / CSS ๋ณ๊ฒฝ |
api | API ํต์ ๊ด๋ จ ์ฝ๋ |
refactor | ๋ฆฌํฉํ ๋ง |
chore | ํจํค์ง ์ค์น / ๋น๋ ์ค์ (ํ๋ก๋์ ์ฝ๋ ์ ์ธ) |
deploy | ๋ฐฐํฌ ๊ด๋ จ ์ค์ |
comment | ์ฃผ์ ์ถ๊ฐ ๋๋ ์์ |
test | ํ ์คํธ ์ฝ๋ ์ถ๊ฐ |
rename | ํ์ผ ๋๋ ํด๋๋ช ๋ณ๊ฒฝ |
remove | ํ์ผ ์ญ์ |
docs | ๋ฌธ์ ์์ |
!HOTFIX | ๊ธด๊ธ ์์ |
!BREAKING CHANGE | ๋๊ท๋ชจ ๊ตฌ์กฐ ๋ณ๊ฒฝ ์ ์ฌ์ฉ |
๐ฟ ๋ธ๋์น ๋ค์ด๋ฐ ๊ท์น โ
- PR ๋จธ์ง ํ ๋ธ๋์น๋ ์ญ์
- ๋จธ์ง ๋ฐฉ์: squash merge
๐ ๋ชจ๋๊ฐ ์ดํดํ ์ ์๊ณ , ๊น๋ํ Git ์ด๋ ฅ์ ๋จ๊ธฐ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.