[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๊ฐ€ ์ ํ•ฉํ•˜๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๊ตฌ๋ฒ„์ „๋“ค์— ๋Œ€ํ•ด์„œ๋„ ์ง€์†์ ์ธ ๊ธฐ๋Šฅ ๊ฐœ์„ /ํŒจ์น˜๊ฐ€ ๋“ค์–ด๊ฐ€์•ผ ํ•œ๋‹ค.
์ด ๊ฒฝ์šฐ์—๋Š” ๋‹น์—ฐํžˆ ๋ฒ„์ „๋ณ„๋กœ ์ˆ˜๋ช…์ด ๊ธด ๋ธŒ๋žœ์น˜๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ด๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ๋ง์ด๋‹ค.
ํ”ผ๊ณคํ•˜๊ธด ํ•˜์ง€๋งŒ ์–ด์ฉ” ์ˆ˜ ์—†๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค.



์ฐธ์กฐ
https://trunkbaseddevelopment.com/