ํ์
์ ์์ด์ ๊ฐ๋ฐ์๋ Github
๋ฅผ ๋นผ๋์ ์๊ฐ ์๋ค..
์ค๋์ ๊ฐ๋ตํ๊ฒ ๋ผ๋ git flow ํ์
๋ฐฉ์์ ๋ํด์ ๊ธฐ์ ํด๋ณด๋ ค๊ณ ํ๋ค.
ํ์ ์์ A๋ผ๋ ์ฌ๋๊ณผ B๋ผ๋ ์ฌ๋์ด ๊ธฐ๋ฅ๋ณ๋ก ์ญํ ์ ๋๋์๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ ์ฌ๋๋ค์ด ๊ฐ์ branch์์ ์์ ์ ํ๊ฒ ๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๋งก๊ฒ๋์ด ๊ฒน์น๋ ๋ถ๋ถ์ด ์ ๋คํด๋, ๊ณ์ํด์ ๊ธฐ๋ฅ๋ค์ ๋๋์ด ๊ฐ์ ๊ณต๊ฐ์์ ์์ ์ ํ๋ฉด, PR ํ์ ์๋ง์ conflict๋ฅผ ๋ง์ฃผํ๊ฒ ๋๊ณ , ๋ํ ๊ณ์ ๊ฐ์ ๋ถ๋ถ์ ๋ง์ง๊ฒ ๋์ด ์ด๋ ์๊ฐ pull์ ๋ก๊ฒผ์ ๋, ๋ด๊ฐ ์ด์ฌํ ๋ง๋ ๋ถ๋ถ์ด ๋ฎ์ฌ์์ฌ์ง ์๋ ์๋ค.
๊ทธ๋ฐ ๋ถ์์ฌ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด github ๋ธ๋์น๋ฅผ ์ ๊ทน ํ์ฉํด์ผ ํ๋ค!
github ๋ด์์ branch๋ฅผ ์ด์ฉ / ์ด์ํ๋ ๋ธ๋์น ์ ๋ต์ git flow
๋ผ๊ณ ๋ถ๋ฅธ๋ค
์ด ๋ธ๋์น๋ ํฌ๊ฒ master, develop, feature, release, hotfix๋ฅผ ๊ธฐ๋ณธ ๋ชจ๋ธ๋ก ์ก๊ณ ํ๋ฉด ํธํ๋ค. (ํ์
์์๋ ์ด๋ฐ git flow ๋ธ๋์น ๋ช
์ ์์ฃผ ์ด์ฉํ๋ค๊ณ ํจ!)
์์ 5๊ฐ์ ๋ธ๋์น๋ฅผ ์ด๋ฆ์ ์ ๋ ๊ฒ ์ ํ๊ฒ ๋ ์ด์ ๋ ํด๋น ๋ธ๋์น์์ ๋งก๊ฒ๋๋ ๊ธฐ๋ฅ์ ์๊ฒ๋๋ฉด ์ดํด๊ฐ ์ฌ์ธ ๊ฒ์ด๋ค.
master : ์ ์์ผ๋ก ๋ฐฐํฌ๋๋ ์ฝ๋๋ค์ ๊ด๋ฆฌํ๋ ์ต์ข
๋ธ๋์น. Github Action ๋ฑ์ผ๋ก CI / CD๊ฐ ์ ๋์ด์๋ ๊ณณ์ master ๋ธ๋์น๋ฅผ deploy branch๋ก ๊ฑธ์ด๋๋ฉด master์ ๋ณ๊ฒฝ์ ์ด ์์ ๋๋ง๋ค, ๊ทธ ๋ณ๊ฒฝ์ ์ ๋ฐฐํฌ ์ฌ์ดํธ์ ์ ์ฉ์ ํ ์ ์๊ฒ ๋๋ค. => (netlify, vercel ๋ ์ฌ์ฉํด๋ณด์ธ์)
์ผ์ผ์ด ์ ์ ์ผ๋ก npm run build
build ํ์ผ๋ค์ ๊ณ์ ๋ณ๊ฒฝ ๋ ๋๋ง๋ค ๋ฐฐํฌ ์ฌ์ดํธ์ ์ ์ฉ์์ผ์ฃผ๋ ๊ท์ฐฎ์์ ํด๊ฒฐํด์ค ์ ์๋ค..!
๋จ, ์ด ๋ธ๋์น๋ ์ ๋ง ๋ฐฐํฌ
๋ง์ ์ํ ๋ธ๋์น์ด๋ฏ๋ก, ํ์๋ค๋ผ๋ฆฌ ์๋ก ๋ง๋ ๊ธฐ๋ฅ์ ํฉ์ณ์ ๊ทธ ๋ถ๋ถ์์ ์๋ชป๋ ๋ถ๋ถ์ ๋ฏธ๋ฆฌ ์ฐพ๊ณ ์์ฑ๋ณธ์ ํด๋น ๋ธ๋์น์ ๋ฐ์์ ํด์ผ๋๋ค. ๋ง์ฝ์ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋๊ฐ master๋ก ๋์ด์ค๊ฒ๋๋ค๋ฉด, ๋ฐ๋ก ๋ฐฐํฌ์ ์ ์ฉ์ด ๋์ด ์ ์ ๋ค์ด ํฐ์ ํ๋ฉด์ ๋ณด๊ฒ ๋ ์๋ ์๋ค.
develop : ์์ ๋ฌธ์ ์ฌํญ์ด ๋ฐ์ํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๋ชจ๋ ๊ฐ๋ฐ
๊ด๋ จ ์ฝ๋๋ค์ ํ๋ฒ ํฉ์ณ๋ด์ ๊ฒํ ๊น์ง ํ๋ ๋ธ๋์น๋ฅผ develop์ด๋ผ๊ณ ํ๋ค. ์ฌ๊ธฐ์ ๊ฐ์ ๋๋ ๊ธฐ๋ฅ์ ํฉ์ณ๋ณด๊ณ client server์์ ์ ๊ตฌํ์ด ๋๋ค๋ฉด master branch PR์ ํ๊ฒ ๋๋ฉด ๊น๋ํ๊ฒ ๋ฐฐํฌ์๋ฒ์ ๋ฌธ์ ์์ด ๋ฐ์์ด ๋ ๊ฒ์ด๋ค.
feature : ํด๋น ๋ธ๋์น๋ ๋ง ๊ทธ๋๋ก ๊ธฐ๋ฅ
, ๊ธฐ๋ฅ ๋ธ๋์น์ด๋ค.
ํ์๋ค์ด ๊ฐ์์ ๊ธฐ๋ฅ์ ๋๋ ๋ถ๋ถ์ feature๋ผ๋ ์ด๋ฆ์ ๋ธ๋์น๋ก ๋๋ ์ ๊ฐ๋ฐ์ ์งํํ๊ฒ ๋๋ค.
๋ค๋ฅธ ๋ถ๋ค์ ์ด๋ป๊ฒ ํด๋น ๋ธ๋์น๊ฐ ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ๋ ๋ธ๋์น์ด๋ค..! ๋ผ๊ณ ์ ์ํ๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ๋ด ์๊ฐ์ ์ด ๊ฐ๋ฐ์ด๋ผ๋๊ฒ ์๋น์ค๋ฅผ ๋ง๋๋ ์ฌ๋๋ค๋ผ๋ฆฌ์ ์ฝ์๋ง ์ ์ ์๊ฐ ๋๋ค
๋ฉด ์๊ด์ด ์๋ค๊ณ ์๊ฐํ๋ ์ผ์ด์ค์ด๋ค.
๋๋ feature/login (๋ก๊ทธ์ธ ํํธ), feature/mainpage (๋ฉ์ธํ์ด์ง) ๋ฑ์ผ๋ก ์ฌ์ฉ์ ํ๊ณ ์๋ค.
( ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ผ์๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์! ์๋ก ์ข์ ์ ๋ณด ๊ณต์ ํด๊ฐ๋ฉด์ ๊ฐ๋ฐํฉ์๋ค )
release : ์ฑ๋ฅ ๊ฐ์ ๊ทธ๋ฆฌ๊ณ ๋ฒ๊ทธ ์์ ์ ์ํ ๋ธ๋์น์ด๋ค. ๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ์ด๋ ๊ฒ ์ ์๊ฐ ๋์ด์์ด์ ๊ธฐ์ ์ ํด๋ณธ๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ ํด๋น ๊ธฐ๋ฅ์ด ์๋ feature ๋ธ๋์น์์ ์ฒ๋ฆฌ๋ฅผ ํด๋ ๊ด์ฐฎ๋ค๊ณ ์๊ฐ์ ํ๊ธฐ ์ฌ์ฉ์ ํด๋ณธ ์ ์ด ์๋ค.. (์ด๊ฒ๋ ์๊ฒฌ ๋ฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค!)
hotfix : ๊ธํ๊ฒ ๊ธด๊ธ ํจ์น ์์ ์ ํด์ผ๋๋ ๋ธ๋์น๋ก ๋ณ๊ฒฝ์ ์ develop์ผ๋ก ๊ฑฐ์น์ง ๋ง๊ณ ๋ฐ๋ก master๋ก PR์ ํ์ฌ ๋น ๋ฅด๊ฒ ๋ฐ์์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๋ชฉํ๋ก ํ๋ค.
์ฒ์์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด์ผ์ง ์์์ ํ ์ ์๋ค. ๋ณดํต ์ฒ์ ํ๋ก์ ํธ๋ฅผ ์ด๋ฉด main
์ด๋ผ๋ ๋ธ๋์น๊ฐ ๋ณด์ผ ๊ฒ์ด๋ค. ์ด๋ ๋ด๊ฐ ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ ํด๋น ๋ธ๋์น๋ก ๋ฐ๋ก ๋์ด๊ฐ๊ณ ์ถ๋ค!
์ด๋ด๋ ์ฐ๋ ๋ช
๋ น์ด๊ฐ ๋ฐ๋ก git checkout -b ๋ธ๋์น๋ช
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฐ๋ก ํด๋น ๋ธ๋์น๋ก ๋์ด๊ฐ์ ธ์ ์์ ์ด ๊ฐ๋ฅํ๋ฏ๋ก ์ ๋ง ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ค. ์ค์ ๋ก ์ฃผ๋ณ ๋๋ฃ๋ค๋ ๋ด๊ฐ ์๋ ค์ค ์ดํ๋ก ๋ฒ๋ฆ์ฒ๋ผ ์ฌ์ฉํ๊ณ ์๋ ๋ช ๋ น์ด์ด๋ค. (์ข ๋ฟ๋ฏํฉ๋๋ค ใ )
๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ๋ง๋ ๋ธ๋์น๋ ๋ด local branch (๋ด ์ปดํจํฐ์์ ๋ง๋ค์ด์ง branch)
์ด์ง remote branch (github์ ์ฐ๋๋ ๋ธ๋์น)
๊ฐ ์๋๋ผ์ ์ฐ๋์ ์์ผ์ค์ผํ๋ค.
๋จผ์ git branch
๋ช
๋ น์ด๋ก ๋ด ๋ก์ปฌํ๊ฒฝ์ ๋ธ๋์น๋ฅผ ๋ณผ ์๊ฐ ์์ผ๋ฉฐ, git branch -r
๋ก remote ํ๊ฒฝ, ์ฆ github์ ๋ธ๋์น๋ฅผ ๋ณผ ์๊ฐ ์๋ค.
๋ง์ฝ ๋ด๊ฐ ๋ฐฉ๊ธ ๋ง๋ ๋ธ๋์น๊ฐ ์๋ค๋ฉด push๋ฅผ ํ๊ฒ ๋๋ฉด ๋ฐ๋ก remote ํ๊ฒฝ์ ๋ธ๋์น๋ฅผ ์์ฑํ ์ ์๋ค.
๋ ๋ค๋ฅธ ํ์ผ๋ก ๋ง์ฝ์ ๋ค๋ฅธ ํ์์ด ๋ง๋ ๋ธ๋์น๋ฅผ ๋ด๊ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ๋๋ ์ผ์ด ์๊ฒผ๋ค..!
๊ทผ๋ฐ ๋ด๊ฐ ๋ง๋ ๋ธ๋์น๊ฐ ์๋๋ผ์ ์ ๊ทผ์ด ์ด๋ ค์..
์ด๋ด ๋๋ ํด๋น remote ์ ์๋ ๊ธฐ๋ฅ ๋ธ๋์น ์ด๋ฆ์ ๋๊ฐ์ดํด์ ๋ด local ๋ธ๋์น์ ์์ฑํด์ฃผ๊ณ ์ดํ push๋ฅผ ํ๋ฉด commit ์ด ๋ฐ๋ก ์ฐ๋์ด ๋ฉ๋๋ค
์ด์ remote ํ๊ฒฝ์์ ๋ฐ์ํ๋ ์์๋ฅผ ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค.
git init (์๋ก ์์ฑ๋ ํ์ผ๋ฑ์ ๋ฑ๋ก)
-> git add . (๋ด๊ฐ ์์
์ ํ์ฌ ๋ณ๊ฒฝ๋ ํ์ผ์ git์ ์ฌ๋ฆฌ๊ธฐ ์ํด ์ถ๊ฐ) ๋ง์ฝ ๋ฌด์จ ํ์ผ๋ค์ด ์ถ๊ฐ๋์๋์ง ํ์ธํ๋ ค๋ฉด git status๋ก ํ์ธ
-> git commit -m "์ปค๋ฐ์ด๋ฆ" (commit ๋ง๋ค๊ธฐ)
-> git push origin ๋ธ๋์น ๋ช
(git์ ๋ฑ์ฌ)
๊ทธ๋ฐ๋ฐ push ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋๋ ์๋ค. ๊ทธ๋ ํฐ๋ฏธ๋์ ์์ธํ ๋ค์ฌ๋ค ๋ณด๋ฉด git pull...
์ด๋ผ๋ ๊ธ๊ท๊ฐ ๋ณด์ด๋ฉด ํด๋น ๋ธ๋์น์ ๋ณ๊ฒฝ์ ์ด ์์ผ๋ pull ๋ฐ์์ ํ์ธํ๊ณ ๊ทธ ํฉ๋ณธ์ ๋ค์ push ํด๋ผ ๋ผ๋ ๋ป์ด๋ค.
๊ทธ๋ ๋ค๋ฉด git pull origin ๋ธ๋์น ๋ช
์ผ๋ก ๋ฐ์์์ ํ์ธ ํ ๋ค์ push ํด์ฃผ๋ฉด ์ ์์ ์ผ๋ก ์ฌ๋ผ๊ฐ๋ค.
์ฌ๊ธฐ๊น์ง๊ฐ ๊ธฐ๋ณธ์ ์ธ ๋ธ๋์น์์ commit ๋ณ๊ฒฝ ์ ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.