minTech

[Git] Git flow ๋ธŒ๋žœ์น˜ ์ „๋žต ๋ณธ๋ฌธ

Git

[Git] Git flow ๋ธŒ๋žœ์น˜ ์ „๋žต

pushzzeong 2024. 1. 13. 23:08

๐Ÿคท‍โ™‚๏ธ Git ๋ธŒ๋žœ์น˜ ์ „๋žต?

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

 

ใ€ฐ๏ธGit Flow

  • Git flow๋Š” git ๋ธŒ๋žœ์น˜ ์ „๋žต๋“ค ์ค‘์—์„œ ๊ฐ€์žฅ ๋ชจ๋ฒ”์ ์ธ ์‚ฌ๋ก€ ์ค‘ ํ•˜๋‚˜๋กœ, ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ์— ๊ทœ์น™์„ ๋งŒ๋“ค์–ด ํ˜‘์—…์„ ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. 
  • git flow๋Š” main branch์™€ supporting branch๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ธŒ๋žœ์น˜๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
main branch : ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ์ „๋ฐ˜์— ๊ฑธ์ณ ํ•ญ์ƒ ์œ ์ง€๋˜๋Š” ๋ธŒ๋žœ์น˜
=> master branch์™€ develop branch๋กœ ๋‚˜๋‰œ๋‹ค. 
supporting branch : ํ•„์š”ํ•  ๋•Œ๋งŒ ์ƒ์„ฑ๋˜๋ฉฐ, ๋‹ค ์“ฐ๋ฉด ์‚ญ์ œํ•˜๋Š” ๋ธŒ๋žœ์น˜
=> feature branch, release branch, hotfix branch ๋กœ ๋‚˜๋‰œ๋‹ค. 

 

  • ๋ธŒ๋žœ์น˜์˜ ๋จธ์ง€๊ฐ€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ผ์–ด๋‚œ๋‹ค๋Š” ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค. 

 

main branch

โ˜๏ธ master branch

- ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ๋ชจ์•„๋‘๋Š” ๋ธŒ๋žœ์น˜์ด๋‹ค.

- ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ์— ๊ฐ™์ด ์ƒ์„ฑ๋œ๋‹ค. 

- ๋ฐฐํฌ๋œ ๊ฐ ๋ฒ„์ „์„ tag๋ฅผ ํ†ตํ•ด ํ‘œ์‹œํ•œ๋‹ค.  

 

โœŒ๏ธ develop branch

- ๋‹ค์Œ ๋ฒ„์ „ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ๋ชจ์•„๋‘๋Š” ๋ธŒ๋žœ์น˜์ด๋‹ค. 

- ๊ฐœ๋ฐœ ์™„๋ฃŒ ์‹œ์— main branch๋กœ ๋จธ์ง€๊ฐ€ ๋œ๋‹ค.

 

 

supporting branch

โ˜๏ธ feature branch

- ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์‹œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋žœ์น˜์ด๋‹ค.

- develop ๋ธŒ๋žœ์น˜์—์„œ ์ƒ์„ฑ์ด ๋˜๋ฉฐ, ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋˜๋ฉด develop ๋ธŒ๋žœ์น˜๋กœ ๋‹ค์‹œ ๋จธ์ง€๋œ๋‹ค.

 

โœŒ๏ธrelease branch

- ์ด๋ฒˆ ์ถœ์‹œ ๋ฒ„์ „ ๋ฐฐํฌ๋ฅผ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜์ด๋‹ค. 

- ๋ฒ„๊ทธ๋‚˜ ์ž‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ํ•ด๊ฒฐ ํ›„์—๋Š” develop ๋ธŒ๋žœ์น˜์— ๋จธ์ง€ํ•œ๋‹ค.

- ๋จธ์ง€ ํ›„์—๋Š” QA, ํ…Œ์ŠคํŠธ ์ง„ํ–‰์ด ์ด๋ฃจ์–ด์ง€๊ณ , main์œผ๋กœ ์˜ฎ๊ฒจ์ง„๋‹ค.

 

๐Ÿ‘Œhotfix branch

- ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๊ธด๊ธ‰ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜์ด๋‹ค.

- main ๋ธŒ๋žœ์น˜์—์„œ ์ƒ์„ฑ๋˜๋ฉฐ, ๋ฌธ์ œ ํ•ด๊ฒฐ ํ›„ main๊ณผ develop ๋ชจ๋‘ ๋จธ์ง€ํ•œ๋‹ค.

 

 

๐Ÿ’กGit flow ๋ธŒ๋žœ์น˜์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„

  1. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด develop branch๋กœ๋ถ€ํ„ฐ feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 
  2. ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋˜๋ฉด feature ๋ธŒ๋žœ์น˜๋ฅผ develop ๋ธŒ๋žœ์น˜๋กœ ๋จธ์ง€ํ•œ๋‹ค.
  3. release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด ๋‹ค์Œ ์ถœ์‹œ๋ฅผ ์ค€๋น„ํ•œ๋‹ค.  => ์ „์ฒด์ ์ธ ์ˆ˜์ •๊ณผ ๋‹ค๋“ฌ๊ธฐ๊ฐ€ ์ค€๋น„ํ•˜๋ฉฐ ๋งˆ์ง€๋ง‰ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
  4. ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด release ๋ฅผ master ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด release๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  5. master ๋ธŒ๋žœ์น˜์— ์žˆ๋Š” ์ฝ”๋“œ๋Š” ์™„์„ฑ๋œ ์ƒํƒœ๋กœ ๊ฐ„์ฃผ๋˜์–ด ๋ฐฐํฌ๋œ๋‹ค. 

'Git' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Git] git ๋ธŒ๋žœ์น˜ ๋ช… ๋ณ€๊ฒฝํ•˜๊ธฐ  (0) 2024.05.07
[Git] ๋ธŒ๋žœ์น˜๋ฅผ merge ํ•˜๋Š” ๋ฐฉ๋ฒ•  (1) 2024.01.13