์ƒˆ์†Œ์‹

DevOps/Git

[Git] ๊นƒ ํ”Œ๋กœ์šฐ(Git Flow) ๋ž€?

  • -

 

 

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋Š” ํฌ๊ฒŒ ์—ผ๋‘์— ๋‘๊ณ  ์žˆ์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ์•˜์—ˆ์ง€๋งŒ, ํ˜‘์—…์„ ํ•˜๋‹ค ๋ณด๋ฉด Push / Pull ํ•  ๋•Œ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค.

 

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

 

์ด๋Ÿฐ ์‹ค์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ CI · CD๊ฐ€ ๊ตฌ์ถ•๋˜์–ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์˜ˆ์ • ๋˜๋Š” ์ง„ํ–‰ ์ค‘์ด๋ผ๋ฉด ์ด๋ฒˆ ๊ธฐํšŒ์— ํ•œ๋ฒˆ GUI๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์šฉํ•ด์„œ ๋‚˜๋ˆ ๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋ฌผ๋ก , CI · CD๊ฐ€ ๊ตฌ์ถ•๋˜์–ด ์žˆ์ง€ ์•Š์•„๋„ ํ™œ์šฉํ•˜์…”๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

 


#1. ๋ธŒ๋žœ์น˜(branch) ์ข…๋ฅ˜ / ์—ญํ• 

์•„๋ž˜์— ๋ช…์‹œํ•ด๋‘” ๋ช…์นญ์€ ์ž์œ ์ด์ง€๋งŒ, ์ตœ์†Œํ•œ์˜ ๊ทœ์น™์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•œ ๋ช…์นญ์ด๋‹ˆ ์ฐธ๊ณ ํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

๋ธŒ๋žœ์น˜(branch) ์ข…๋ฅ˜ / ์—ญํ• 

 

  • main: ๊ธฐ๋ณธ ๋ฉ”์ธ branch
  • hotfix: ๊ธด๊ธ‰ํ•œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ branch
  • release: main์œผ๋กœ merge request ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ branch
  • develop: ๊ฐœ๋ฐœ ์ง„ํ–‰ ๋ฉ”์ธ branch
  • feature: ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋ถ„๋ฆฌํ•˜๋Š” branch (๋ณต์ˆ˜๊ฐœ)
    • feature/notice: ๊ณต์ง€์‚ฌํ•ญ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ branch
    • feature/login: ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ branch
300x250

 

CI/CD๊ฐ€ ๊ตฌ์ถ•๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•˜์…”๋„ ๋ฌด๊ด€ํ•ฉ๋‹ˆ๋‹ค.

 

Trunk-Based ๋ธŒ๋žœ์น˜ ํ•˜๋‚˜๋งŒ ์ž˜ ๊ด€๋ฆฌํ•˜์ž

 

Trunk-Based ์ตœ์†Œํ•œ์˜ ๋ธŒ๋žœ์น˜ ๋ถ„๋ฆฌ

 

main branch์—์„œ ๋ชจ๋“  ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ  ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•  ๋•Œ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฑ…์ž„์˜ ์†Œ์ง€๊ฐ€ ์ปค์ง€๋ฏ€๋กœ ์ตœ์†Œํ•œ์˜ feature branch ์ •๋„๋Š” ๋ถ„๋ฆฌํ•ด์„œ ์ž‘์—… ํ›„์— ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 


#2. ์žฅ์ 

Git Flow๋ฅผ ์ ์šฉํ•  ๊ฒฝ์šฐ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์žฅ์ ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • ๋‹จ์œ„ ์ž‘์—…์ž๋“ค๊ณผ ๊ด€๋ฆฌ์ž์˜ ๊ถŒํ•œ์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ฐ๊ฐ์˜ ๊ถŒํ•œ์—์„œ๋งŒ ์ฝ”๋“œ์™€ ๋ธŒ๋žœ์น˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์„œ ๋ณด๋‹ค ์•ˆ์ „ํ•˜๊ฒŒ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • App, Web, Mobile, API ๋“ฑ ์šด์˜์— ๋ฐฐํฌ๋˜๊ณ  ์žˆ๋Š” ๋ธŒ๋žœ์น˜์— ์ ‘๊ทผ์€ ์ตœ์ข… ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ ๊ทœ ์ž‘์—…์€ feature, develop, release, hotfix ๋“ฑ์˜ ๋ธŒ๋žœ์น˜์—์„œ ์ƒˆ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ตœ์ข… ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋œ๋‹ค๋ฉด, ๋ณ‘ํ•ฉ ์š”์ฒญ์„ ๊ฑฐ์ ˆํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ํ™œ์šฉ ๊ฐ€๋Šฅ

 

 

 

 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Š

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๐Ÿ‘