[Git] trunk base development
trunk base develeopment๋ Git branch ๊ด๋ฆฌ ์ ๋ต ์ค ํ๋๋ค.
git flow์ ์ ๋ฐ๋์ ํน์ฑ์ ๊ฐ์ง๋ค.
์ฝ๊ฒ ๋งํด์, ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ ์ธ๋ฐ์์ด ํํธํํ์ง ๋ง๊ณ ๋จ์ผ ๋ธ๋์น(master ๋ฑ)๋ก๋ง ์ก๊ณ ์์ feature ๋จ์ merge๋ง์ ๋น ๋ฅด๊ฒ ํ๋ฉด์ ์ด์ด๋๊ฐ๋ผ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์์ ํต์ฌ ๋ ผ๋ฆฌ๋ ๋ธ๋์น๋ฅผ ์ฌ๋ฌ๊ฐ ๋์ง ๋ง๋ผ๋ ๊ฒ์ด ์๋๋ค. ๋จ์ง "์๋ช ์ด ๊ธด" ๋ธ๋์น๋ฅผ ์ฌ๋ฌ๊ฐ ๋์ง ๋ง๋ผ๋ ๊ฒ์ด๋ค.
๋ค์ค ๋ธ๋์น ๊ด๋ฆฌ์ ๋ฌธ์ (with Git Flow)
git flow ์ ๋ต์์๋ ๋ค์ค ๋ธ๋์น ๊ธฐ๋ฐ์ผ๋ก ์์
์ ์ฐ์ฑ๊ณผ ๋
๋ฆฝ์ฑ์ ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ๊ฝค๋ ๊ถ์ฅํ๋ ํธ์ด๋ค.
์๋ฅผ ๋ค๋ฉด "v1.0.2" ๋ฐฐํฌ๋ "feature ๊ฒฐ์ ์์คํ
๊ตฌํ" ๊ฐ์ ํฐ ๋จ์๋ก๋ ๋ธ๋์น๋ฅผ ๋ง๋ค ์ ์๋ค.
์ด๋ ๊ฒ ํฐ ๊ธฐ๋ฅ ๋จ์๋ก ๋ธ๋์น๋ฅผ ๋ง๋ค์ด์ ์์ ์ ํ๋ค๋ณด๋ฉด, ํ๋์ ๋ธ๋์น ์์ ์ด ๋ช์ฃผ๋ ํ๋ฌ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ์ด์ํ์ง ์๋ค.
๋
ผ๋ฆฌ์ ์ผ๋ก ํฐ ๋ฌธ์ ๋ ์๋ ๋ฐฉ๋ฒ๋ก ์ด์ง๋ง, ์ค์ ๋ก ์ด์์ ํ๋ค๋ณด๋ฉด ์ด๋ ค์์ด ์ข ๋ง์ด ์๊ธธ ์ ์๋ค.
๊ฐ์ฅ ํฐ ๋จ์ ์ ์ถฉ๋๊ณผ ์ง์ฐ ๋ฌธ์ ๋ค. ์ฝ๋๊ฐ ๋น ๋ฅด๊ฒ ๋ณํํ ์๋ก ๋ฉ์ธ ๋ธ๋์น์๋ ๋ณ๊ฒฝ์ฌํญ์ด ๋์ ๋ ํ ๋ฐ, ์์ชฝ ๋ธ๋์น๊ฐ ์ค๋ซ๋์ ์ ์ง๋ ์ฑ๋ก ์ ์ง๋๋ฉด mergeํ ๋ ์ถฉ๋์ด ๋งค์ฐ ๊ทน์ฌํ๊ฒ ๋ฐ์ํ ์ ์๋ค.
conflict ์คํธ๋ ์ค๋ ์คํธ๋ ์ค์ง๋ง ์ง์ง ๋ฌธ์ ๋ ์ถฉ๋์ด ๋ง์ด ๋ฐ์ํ ์๋ก ์ค์๋ฅผ ํ ๊ฐ๋ฅ์ฑ์ด ๋์ด๋๊ณ , ๋ค๋ฅธ ํ์๋ค๊ณผ์ ํผ์ ์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ๋ ๋์ด๋๋ค๋ ๊ฒ์ด๋ค.
๋จ์ผ ๋ธ๋์น ๊ด๋ฆฌ - trunk base development
๊ทธ๋์ trunk base์์๋ ๊ฐ๋ฐ ์์ ๋ธ๋์น๋ ๋๋๋ก ๋จ์ผ ๋ธ๋์น๋ก๋ง ์ก๊ณ , ๋น ๋ฅด๊ฒ ์์ ์์ ๋จ์๋ก merge๋ฅผ ํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๊ทธ๋์ผ ์ถฉ๋ ๋ฌธ์ ๋ ํจ์ฌ ์ ๊ณ , ๋ค๋ฅธ ํ์๋ค๊ณผ์ ์ปจํ
์คํธ ๊ณต์ ๋ฑ๋ ๋น ๋ฅด๊ฒ ์ด๋ฃจ์ด์ง ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
trunk base vs git flow
ํ์ง๋ง trunk base ๋ฐฉ์๋ ๋จ์ ์ด ์๋ ๊ฒ์ ์๋๋ค.
๋๋ถ๋ถ์ ๊ธฐ์ ๋ค์ด ๊ทธ๋ ๋ฏ trade-off๊ฐ ์๊ณ , trunk base์ git flow๊ฐ ์ ํฉํ ์ฉ์ฒ๊ฐ ๋ค๋ฅผ ๋ฟ์ด๋ค.
๊ฐ๋ฐ ์กฐ์ง์ด ๊ทธ๋ ๊ฒ ํฌ์ง ์๊ณ , ๋์ ๋ฒ์ ์ง์ ์์ด ๊ณ์ํด์ ์ต์ ํํด๋ ์ข์ ์์คํ
์ด๋ผ๋ฉด trunk base๊ฐ ๊ฐ์ฅ ํจ์จ์ ์ผ ๊ฒ์ด๋ค.
์ผ๋ฐ์ ์ธ ์์ฉํ๋ก๊ทธ๋จ๋ค์ trunk base๋ฅผ ์ฐ์ ์ผ๋ก ๊ณ ๋ คํ ๋งํ๋ค.
ํ์ง๋ง ๋จ์ผ ๊ฐ๋ฐ ์กฐ์ง์ด ๋งค์ฐ ํฌ๊ฑฐ๋, ๋ฒ์ ๋ณ ๋์ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ์๋ git flow๊ฐ ์ ํฉํ๋ค.
์๋ฅผ ๋ค๋ฉด ์ปดํ์ผ๋ฌ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ตฌ๋ฒ์ ๋ค์ ๋ํด์๋ ์ง์์ ์ธ ๊ธฐ๋ฅ ๊ฐ์ /ํจ์น๊ฐ ๋ค์ด๊ฐ์ผ ํ๋ค.
์ด ๊ฒฝ์ฐ์๋ ๋น์ฐํ ๋ฒ์ ๋ณ๋ก ์๋ช
์ด ๊ธด ๋ธ๋์น๋ฅผ ์ ์งํ๋ฉด์ ์์
ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ค.
์ด๋ฐ ์์ผ๋ก ๋ง์ด๋ค.
ํผ๊ณคํ๊ธด ํ์ง๋ง ์ด์ฉ ์ ์๋ค. ์ด๋ ๊ฒ ํด์ผ ํ๋ค.