Git์ด๋ž€?


git์€ ์ปดํ“จํ„ฐ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ช…์˜ ์‚ฌ์šฉ์ž๋“ค ๊ฐ„์— ํ•ด๋‹น ํŒŒ์ผ๋“ค์˜ ์ž‘์—…์„ ์กฐ์œจํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.

์ฃผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉฐ ์ฝ”๋“œ ๊ด€๋ฆฌ์—๋„ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์–ด๋– ํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ง€์†์ ์œผ๋กœ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. (๋‚˜๋Š” ๋ณดํ†ต ์†Œ์Šค์ฝ”๋“œ ๊ด€๋ฆฌ์™€ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ถ”์ ์„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค)

 

 

 

 

 

Git-flow๋ž€?


Git-flow๋Š” Git์ด ํ™œ์„ฑํ™”๊ฐ€ ๋  2010๋…„ ์ •๋„์— Vincent Driessen์ด๋ผ๋Š” ์‚ฌ๋žŒ์ด ๋งŒ๋“  Git์„ ์‚ฌ์šฉํ•œ ๊ฐœ๋ฐœ ์ž‘์—… ์ ˆ์ฐจ์ด๋‹ค. Git-flow๋ผ๊ณ  ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ ๊ฐ™์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹Œ ์•ฝ์†, ๊ทœ์น™๊ฐ™์€ ๊ฐœ๋…์ด๋‹ค.

Vincent Driessen๋˜ํ•œ Git-flow๋Š” ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•๋ก ์ด ์•„๋‹Œ, ๊ฐ์ž ํŒ€์— ๋งž๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋ณ€ํ˜•ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ๋‹ค.

 

 

 

 

Git-flow์˜ ๋ธŒ๋žœ์น˜


Git-flow์˜ ๋ธŒ๋žœ์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

  • master ์™€ devleop๋ธŒ๋žœ์น˜
    • master์™€ develop๋ธŒ๋žœ์น˜๊ฐ€ ์กด์žฌํ•˜๊ณ , develop๋ธŒ๋žœ์น˜๋Š” master ๋ธŒ๋žœ์น˜์—์„œ ์‹œ์ž‘๋œ ๋ธŒ๋žœ์น˜.
    Develop๋ธŒ๋žœ์น˜
    • develop๋ธŒ๋žœ์น˜์—๋Š” ์ƒ์‹œ๋กœ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ ์ปค๋ฐ‹๋“ค์ด  ์ถ”๊ฐ€๋˜๊ฒŒ ๋œ๋‹ค.
    • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š”  ๊ฒฝ์šฐ  develope ๋ธŒ๋žœ์น˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” feature๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑ
    Feature๋ธŒ๋žœ์น˜
    • ์ด feature๋ธŒ๋žœ์น˜๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, develop ๋ธŒ๋žœ์น˜๋กœ merge 
    • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š”  ๊ฒฝ์šฐ  develope ๋ธŒ๋žœ์น˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” feature๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑ
    release ๋ธŒ๋žœ์น˜
    • develop๋ธŒ๋žœ์น˜์— ์ด๋ฒˆ ๋ฒ„์ „์— ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์ด merge๋˜์—ˆ๋‹ค๋ฉด , QA๋ฅผ ์œ„ํ•ด develop๋ธŒ๋žœ์น˜์—์„œ release๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑ
    •  QA๋ฅผ ๋ฌด์‚ฌํžˆ ํ†ต๊ณผํ•˜๊ฒŒ๋˜๋ฉด relase๋ธŒ๋žœ์น˜๋ฅผ master์™€ develop๋ธŒ๋žœ์น˜๋กœ  merge
    • QA๋ฅผ  ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋“ค์€ ๋ชจ๋‘ release๋ธŒ๋žœ์น˜์— ์ˆ˜์ •

 

 

master์™€ develop์€ ํ•ญ์ƒ ์œ ์ง€๋˜๋Š” ๋ฉ”์ธ ๋ธŒ๋žœ์น˜๋“ค์ด๋ฉฐ ๊ทธ ์™ธ์— feature, release, hotfixes๋Š” ํ•„์š”ํ•œ ๊ธฐ๊ฐ„์—๋งŒ ์œ ์ง€๋˜๋Š” ๋ณด์กฐ ๋ธŒ๋žœ์น˜๋“ค์ด๋‹ค.

 

 

๋‹ค์Œ์€ Vincent Driessen์˜ ๋ธ”๋กœ๊ทธ์—์„œ Git-flow๋ฅผ ์„ค๋ช…ํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฏธ์ง€์ด๋‹ค.

 

ํƒ€์ž„๋ผ์ธ์„ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ ์ฒ˜์Œ์—๋Š” master๋กœ ์‹œ์ž‘ํ•ด develop๋ธŒ๋žœ์น˜๋งŒ ์กด์žฌํ•œ๋‹ค.

์•„์ง ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— develop๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•œ๋‹ค.

๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ์ƒ๊ธฐ๋ฉด feature๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ์ž‘์—…์„ ํ•œ๋‹ค. 

feature๋ธŒ๋žœ์น˜๋Š” ์–ธ์ œ๋‚˜ develop๋ธŒ๋žœ์น˜๋กœ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ๋‹ค.

 

๊ธฐ๋Šฅ์„ ๋‹ค ๊ฐœ๋ฐœํ–ˆ๋‹ค๋ฉด ์ž‘์—…ํ•œ feature๋ธŒ๋žœ์น˜๋ฅผ ๊ฒ€ํ† ํ•œ ํ›„ develop๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•œ๋‹ค.

์ด์ œ ์ด๋ฒˆ ๋ฒ„์ „์—์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ๋ชจ๋‘ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค๋ฉด QA๋ฅผ ์œ„ํ•ด release๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

QA๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฒ„๊ทธ๋“ค์€ ๋ชจ๋‘ ์ด release๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด fix๋œ๋‹ค.

 

์ด์ œ QA๊ณผ์ •์ด ๋ชจ๋‘ ๋๋‚ฌ๋‹ค๋ฉด release๋ธŒ๋žœ์น˜๋ฅผ master์™€ develop๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  master๋ธŒ๋žœ์น˜์— ๋ฒ„์ „๋ช…์‹œ๋ฅผ ์œ„ํ•œ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑ ํ›„ ๋ฐฐํฌํ•œ๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ์˜ Git-flow์ด๋‹ค.

 

 

 

 

ํ•˜์ง€๋งŒ ๋ฐฐํฌ ํ›„์—๋„ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •์„ ํ•ด์•ผํ•˜๋Š”๋ฐ ๊ทธ๋Ÿด ๊ฒฝ์šฐ hofixes๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.

๋ฒ„๊ทธ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด release๋ธŒ๋žœ์น˜๊ฐ€ ์™„๋ฃŒ๋ฌ์„ ๋•Œ์™€ ๊ฐ™์ด master์™€ develop๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ ํ›„ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์™„๋ฃŒํ–ˆ๋‹ค๋Š” ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

 

 

 

 

๋ฒ„์ „ ํƒœ๊ทธ


๋ณดํ†ต ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ‘œ์‹œํ• ๋•Œ ๋ฒ„์ „์€ x.x.x์˜ ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ด ์ˆซ์ž๋“ค์€ ๋ฌด์—‡์„ ์˜๋ฏธํ• ๊นŒ? ๋ฒ„์ „์˜ ๊ฐ€์žฅ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋Š” Major Version์„ ์˜๋ฏธํ•œ๋‹ค. Major Version์€ ๋ณดํ†ต 1๋กœ ์‹œ์ž‘ํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด ์ „์ฒด์ ์œผ๋กœ ํฐ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ์„๋•Œ ๋ฒ„์ „ ์—…์„ ํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๋Š” Minor Version์„ ์˜๋ฏธํ•œ๋‹ค. Miner Version์€ ๋ณดํ†ต 0์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ์—†๋˜ ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€๋‚˜ ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ์ˆ˜์ • ๋“ฑ์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฒ„์ „ ์—…์„ ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰ ์„ธ ๋ฒˆ์งธ ์ž๋ฆฌ๋Š” Build or Maintenance Version์ด๋ผ๊ณ  ํ•˜๋ฉฐ ์ž์ž˜ํ•œ ๋ฒ„๊ทธ๋‚˜ ๋‚ด๋ถ€์  ์ฝ”๋“œ ๋ณด์•ˆ ๋“ฑ์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋ฒ„์ „ ์—…์„ ํ•œ๋‹ค. ์ด ๋ฒ„์ „์€ 0์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€๋งŒ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

 

 

 

 

 


Reference.

link1 link2

'๐Ÿ”ฅ > ๊ธฐํƒ€ ๋“ฑ๋“ฑ ๐ŸŽธ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๊ฐœ๋ฐœ์ƒ์‹] MVC ํŒจํ„ด์ด๋ž€  (0) 2021.08.18

+ Recent posts