๊ทธ๋์ ์๋์ผ๋ก hotfix ๋ธ๋์น๋ฅผ ๋ง๋ค์ด์ hotfix์์
์ ์งํํ๋๋ฐ,
์ด๋ฒ์๋ git flow๋ฅผ ์ด์ฉํด๋ณด์๋ค.
git-flow๋ก hotfixํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
์ฐธ๊ณ : git flow extension์ด ์ค์น๋์ด์๋ค๋ ๊ฒ์ ์ ์ ๋กํ ๊ธ์ ๋๋ค.
git flow init
๋ช
๋ น์ด๋ฅผ ์คํํ๋ค.git flow init
์ Git Flow branching Model์ ๋ง๊ฒ git repo๋ฅผ ์ด๊ธฐํํ๊ธฐ ์ํ ๋ช
๋ น์ด์ด๋ค.
์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด, Git Flow branching Model์ ์ปจ๋ฒค์ ์ ๋ฐ๋ฅด๋ branch๊ฐ ์์ฑ๋๊ณ , feature, hotfix, release์ ๊ฐ์ ๋ธ๋์น์ prefix(์ ๋์ด)๊ฐ ์ง์ ๋๋ค.
feature, hotfix, release๊ฐ ๋ธ๋์น์ prefix(์ ๋์ด) ์ธ ์ด์ >
feature/popup
,hotfix/1.0.2
,release/1.3.0
๋ฑ์ ํํ๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ
๋ํ, ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ ๋ค์๋, ์ด git flow extension์์ ์ ๊ณตํ๋ ๋ช ๋ น์ด๋ค์ ์ด์ฉํ์ฌ ์ฝ๊ฒ Git Flow branching Model ๋๋ก ๋ธ๋์น๋ค์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค.
์, ์ด๋ฏธ ์ด ๋ช ๋ น์ด๊ฐ ์คํ๋ ์ ์ด ์๋ค๋ฉด, ๊ตณ์ด ๋ค์ ํ์ง ์์๋ ๋๋ค. ๋ง๊ทธ๋๋ก ์ด๊ธฐํ์ด๋๊น!
git flow hotfix start ๋ฒ์ ๋ช
์ ์คํํ๋ค.์ด ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด, hotfix/๋ฒ์ ๋ช
์ ๋ธ๋์น๊ฐ ์์ฑ๋๋ค.
์ด๋ ํด๋น ๋ช
๋ น์ด๋ฅผ ์คํํ๋ ๋ธ๋์น๋ช
์ด ๊ผญ main์ด ์๋์ด๋ ๋๋ค.
๋ค๋ฅธ ๋ธ๋์น์์ ์คํํด๋, ์์์ main๋ธ๋์น์์ ๋ฐ์์ง๋ค.
์ด๋ฌํ ์ค์๋ฅผ ์ค์ผ ์ ์๋ ์์๊ฐ git flow ์ฌ์ฉ์ ์ฅ์ ์ด ์๋๊น ์ถ๋ค.
์ฌ๊ธฐ๋ ๋ถ๊ฐ์ค๋ช
ํ ๊ฒ ์๋ค. ๊ณ ์น๊ณ hotfix/๋ฒ์ ๋ช
๋ธ๋์น์ ์ปค๋ฐ!
git flow hotfix finish ๋ฒ์ ๋ช
๋ช
๋ น์ด๋ฅผ ์คํํ๋ค์์ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด, hotfix/๋ฒ์ ๋ช
์ ์ปค๋ฐ ๋ด์ฉ์ด ๋ก์ปฌ์ main
๊ณผ develop
์ ๊ฐ๊ฐ merge๋๋ค.
๊ทธ๋ฆฌ๊ณ hotfix/๋ฒ์ ๋ช
๋ธ๋์น๋ ๋ก์ปฌ์์ ์ญ์ ๋๋ฉฐ, "๋ฒ์ ๋ช
"์ ์ด๋ฆ์ ๊ฐ์ง tag๊ฐ ์์ฑ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ ๋ธ๋์น๋ develop ๋ธ๋์น๊ฐ ๋๋ค.
main
๊ณผ develop
๋ธ๋์น๋ฅผ ๊ฐ๊ฐ origin์ main
๊ณผ develop
์ push ํด์ค๋ค.ํ์ฌ hotfixํ ๋ด์ฉ๋ค์ local์๋ง ๋ฐ์์ด ๋์ด์๋ค. ๋ฐ๋ผ์, ์ด๋ฅผ ์๊ฒฉ repo์๋ ๋ฐ์์ ๊ฐ๊ฐ ํด์ฃผ์ด์ผ ํ๋ค.
- local main -> origin main
- local develop -> origin develop
๋ง์ฝ upstream repo๋ฅผ ๋ฐ๋ก ๋์ด pr๋ก ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ผ๋ฉด, origin์ pushํ ๋ด์ฉ๋ค์ PR๋ก ์ฌ๋ ค์ฃผ๋ฉด ๋๋ค.
- origin main -> upstream main
- origin develop -> upstream develop
โ ๏ธ์ฃผ์
ํ์ฌ ๋ธ๋์น๊ฐ ๋ฌด์์ธ์ง ์ ํ์ธํ๊ณ pushํด์ผ ํ๋ค.
git flow hotfix finish ๋ฒ์ ๋ช
๋ช ๋ น์ด ์คํ ํ ์๋develop
๋ธ๋์น๊ฐ ํ์ฌ ๋ธ๋์น๋ก ์ค์ ๋๋ค.
git push remote๋ช
--tags
๋ช
๋ น์ด๋ฅผ ํตํด ์๊ฒฉ repo์ ํ๊ทธ๋ฅผ ๋ฐ์ํ๋ค.origin์ ๋ฐ์ํ๋ ค๋ฉด git push origin --tags
๋ฅผ,
upstream์ ๋ฐ์ํ๋ ค๋ฉด git push upstream --tags
๋ฅผ ํ๋ฉด ๋๋ค.
์์ ๋ช
๋ น์ด๋, ์๊ฒฉ repo์๋ ์๊ณ ๋ก์ปฌ์๋ง ์๋ ๋ชจ๋ ํ๊ทธ๋ค์ repo์ ๋ฐ์ํ๋ ๋ช
๋ น์ด์ด๋ค.
๋ง์ฝ ํน์ ํ ํ๊ฐ์ ํ๊ทธ๋ง ๋ฐ์ํ๊ณ ์ถ๋ค๋ฉด,
git push remote๋ช
ํ๊ทธ๋ช
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ฐธ๊ณ
๋ก์ปฌ์ ํ๊ทธ ํ์ธํ๋ ๋ช ๋ น์ด:git tag
git flow extension์ ์ฌ์ฉํจ์ผ๋ก์จ ์ฌ๋์ด ์๋์ผ๋ก ํด์ผํ๋ ๊ฒ๋ค์ ํจ๊ณผ์ ์ผ๋ก ์ค์ผ ์ ์๋ค๋ ๊ฒ์ ์ฒด๊ฐํ๋ค.
์์ ๋ด์ฉ๋ค์ ํ
์คํธํด๋ณด๋ฉด์, git flow๊ฐ ์ ๊ณตํ๋ feature ๋ฑ์ ๊ธฐ๋ฅ๋ ์ฌ์ฉํด๋ณด์๋๋ฐ, ๊ธฐ๋ฅ๊ฐ๋ฐ์ด ๋๋ ๋ค ๋ก์ปฌ๊ณผ origin์ feature ๋ธ๋์น๋ฅผ ๋ชจ๋ ์ง์์ค์ ๊ต์ฅํ ํธ๋ฆฌํ๋ค.
๊ทธ๋์์ ๊ฒ๋จน์ด์(...) ์ ์์ผ๋๋ฐ, ์ด์ ๋ถํฐ๋ผ๋ ์ด์ฌํ ์จ์ผ๊ฒ ๋ค. ใ
์๋ก์ด ๊ธฐ์ ์ ์
๋ฌธ์ด์ผ ์ด๋ ต์ง ์์ํ๋ฉด ๋ณ๊ฑฐ ์๋๋ผ๋ ๊ฒ,
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ธฐ์ ์ ๋์
ํจ์ผ๋ก์จ ๋ง์ ์๊ฐ์ ๋จ์ถํ ์ ์๋ค๋ ๊ฒ์ ๋ค์ ๊ธฐ์ตํ์.