๊ทธ๋์ ์๋์ผ๋ก 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 ๋ธ๋์น๋ฅผ ๋ชจ๋ ์ง์์ค์ ๊ต์ฅํ ํธ๋ฆฌํ๋ค.
๊ทธ๋์์ ๊ฒ๋จน์ด์(...) ์ ์์ผ๋๋ฐ, ์ด์ ๋ถํฐ๋ผ๋ ์ด์ฌํ ์จ์ผ๊ฒ ๋ค. ใ
์๋ก์ด ๊ธฐ์ ์ ์
๋ฌธ์ด์ผ ์ด๋ ต์ง ์์ํ๋ฉด ๋ณ๊ฑฐ ์๋๋ผ๋ ๊ฒ,
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ธฐ์ ์ ๋์
ํจ์ผ๋ก์จ ๋ง์ ์๊ฐ์ ๋จ์ถํ ์ ์๋ค๋ ๊ฒ์ ๋ค์ ๊ธฐ์ตํ์.