gitflow, workflow

์ •์Šน์›ยท2023๋…„ 5์›” 7์ผ
0
post-thumbnail

๐Ÿ“’ ๋ชฉ์ฐจ

  • ๐Ÿ“Œ gitflow๋ž€?
  • ๐Ÿ“Œ workflow๋ž€?

๐Ÿ“Œ gitflow๋ž€?

Git Flow๋Š” Git์œผ๋กœ ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ํ• ๋•Œ ๋ธŒ๋žœ์น˜๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ์ „๋žต(Branch management strategy)์ด๋‹ค.

โœ… gitflow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ๋ธŒ๋žœ์น˜๋“ค์„ ๊ตณ์ด ์ „๋žต๊นŒ์ง€ ์„ธ์›Œ์„œ ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผ๋ ๊นŒ?
ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ž‘๊ฑฐ๋‚˜ ํ˜ผ์ž์„œ ๊ฐœ๋ฐœ์„ ํ•  ๊ฒฝ์šฐ branch? ์•„๋‹ˆ master์—์„œ ๊ทธ๋ƒฅ ์ž‘์—…ํ•ด์„œ ๋ฐฐํฌํ•ด๋„ ์ƒ๊ด€์—†์„ ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ์„œ ํŒ€์›์ด ๋Š˜์–ด๋‚ฌ์„ ๊ฒฝ์šฐ ๋ˆ„๊ตฐ๊ฐ€๋Š” ํ•˜๋ฃจ ์ข…์ผ conflict๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋ฉฐ, ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๊ฐœ๋ฐœํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋˜๋Œ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๊ณผ์ •์—์„œ ๊ฐœ๋ฐœ์„ ๋ฉˆ์ถฐ์•ผ ๋˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค.

๋ฌผ๋ก  ํšŒ์‚ฌ๋งˆ๋‹ค ํ”„๋กœ์ ํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ฒ ์ง€๋งŒ, ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •๋“ค์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๊ฒจ๋‚œ ์ „๋žต์ด๋‹ค.

โœ… gitflow์˜ ์ข…๋ฅ˜

Git branch์˜ ์ข…๋ฅ˜๋Š” ์•„๋ž˜ ๋‹ค์„ฏ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • master : ์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋žœ์น˜
  • develop : ๋‹ค์Œ ์ถœ์‹œ ๋ฒ„์ „์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • feature : ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • release : ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „์„ ์ค€๋น„ํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • hotfix : ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ • ํ•˜๋Š” ๋ธŒ๋žœ์น˜

๐Ÿ“Œ workflow๋ž€?


๊นƒ์—๋Š” ๋ธŒ๋žœ์น˜๊ฐ€ ์žˆ๋‹ค. ํ˜ผ์ž ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๋•Œ๋Š” master(๋˜๋Š” main) ๋ธŒ๋žœ์น˜ ํ•œ๊ณณ์—์„œ๋งŒ ์ž‘์—…์„ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ํŒ€์›๋“ค๊ณผ ํ˜‘์—…์„ ํ•ด์•ผํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?


ํ˜‘์—…์„ ํ•  ๋•Œ๋Š”, master ๋ธŒ๋žœ์น˜๋Š” ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌํ•  ์ค€๋น„๊ฐ€ ๋œ ์ƒํƒœ๋งŒ ์˜ฌ๋ฆฌ๋„๋ก ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  master ๋ธŒ๋žœ์น˜์—์„œ ๋‚˜์˜จ dev ๋ธŒ๋žœ์น˜์—์„œ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค.

๊ฐœ๋ฐœ์„ ๋งˆ์น˜๊ณ , ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด master ๋ธŒ๋žœ์น˜์™€ ๋‹ค์‹œ ํ•ฉ์น˜๊ฒŒ๋œ๋‹ค.(merge)

์—ฌ๊ธฐ์„œ ๋” ๋‚˜์•„๊ฐ€์„œ dev ๋ธŒ๋žœ์น˜์—์„œ ๊ธฐ๋Šฅ๋ณ„๋กœ feature ๋ธŒ๋žœ์น˜๋ฅผ ๋นผ์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด dev ๋ธŒ๋žœ์น˜์— ํ•ฉ์นœ๋‹ค.

โœ… hotfix ๋ธŒ๋žœ์น˜

hot-fix ๋ธŒ๋žœ์น˜๋Š” ๋ง ๊ทธ๋ž˜๋„ ๊ธด๊ธ‰ํ•˜๊ฒŒ ์—๋Ÿฌ๋ฅผ ๊ณ ์น˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“œ๋Š” ๋ธŒ๋žœ์น˜์ด๋‹ค.
์ด ๋ธŒ๋žœ์น˜๋Š” master ๋ธŒ๋žœ์น˜์—์„œ ๋ฐ”๋กœ ๋งŒ๋“ค์–ด์„œ ํ”„๋กœ๋•์…˜์—์„œ ์ƒ๊ธด ์ด์Šˆ๋ฅผ ๊ณ ์น˜๊ณ  master ๋ธŒ๋žœ์น˜๋กœ ํ•ฉ์ณ์„œ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

โœ… release ๋ธŒ๋žœ์น˜

release ๋ธŒ๋žœ์น˜๋Š” dev ๋ธŒ๋žœ์น˜์—์„œ ์ƒ์„ฑํ•œ๋‹ค. dev ๋ธŒ๋žœ์น˜์—์„œ feature ๋ธŒ๋žœ์น˜๋“ค์„ ๋งŒ๋“ค์–ด์„œ ๊ธฐ๋Šฅ๋“ค์„ ๋ชจ๋‘ ๊ฐœ๋ฐœํ•˜๊ณ  ํ•ฉ์นœ๋‹ค. ๊ทธ ๋‹ค์Œ์— dev ๋ธŒ๋žœ์น˜์—์„œ release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ”„๋กœ๋•์…˜์„ ์ถœ์‹œํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ์ฝ”๋“œ๋“ค๋งŒ ๋ง๋ถ™์ด๋„๋ก ํ•œ๋‹ค. ๊ทธํ›„ master ๋ธŒ๋žœ์น˜์— ํ•ฉ์นœ๋‹ค. ๋˜ํ•œ dev ๋ธŒ๋žœ์น˜์—์„œ๋Š” release ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์ณ์„œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์œ ์ง€ํ•œ๋‹ค.

โœ… Git Fork Workflow - Forking Repository

์œ„์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•œ ๊ณผ์ •๋“ค์€ ํ•œ ๊ฐœ์˜ ์ €์žฅ์†Œ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์ด๋‹ค. Git Fork Workflow๋Š” ์ €์žฅ์†Œ๋ฅผ fork(๋ณต์ œ) ํ•ด์„œ ํ˜‘์—…ํ•˜๋Š” ์ž‘์—… ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

๐Ÿ“Œ ์ฐธ์กฐ

https://bonjourpark.tistory.com/12

https://codebootcamp.co.kr/

0๊ฐœ์˜ ๋Œ“๊ธ€