ETC

Git flow - ๐Ÿฅ ์นด์นด์˜ค ํ…Œํฌ ์บ ํผ์Šค

Beomsu Koh 2023. 5. 1.

Branching Models - ๐Ÿฅ ์นด์นด์˜ค ํ…Œํฌ ์บ ํผ์Šค

Git Flow

  • (hotfix)- master -(release)- develop - feature
    • Hotfix
      • Master ๋ธŒ๋žœ์น˜์—์„œ ์ƒ์„ฑ ๋˜์–ด ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค
      • ๋ฒ„๊ทธ ์ˆ˜์ •์ด ์™„๋ฃŒ๋˜๋ฉด, Develop์ด๋‚˜ Master์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค
    • Release
      • ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌ๋˜๊ธฐ ์ „์— ์ตœ์ข… ํ…Œ์ŠคํŠธ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •์— ์‚ฌ์šฉ ๋ฉ๋‹ˆ๋‹ค
      • ๋ฆด๋ฆฌ์Šค๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ฆด๋ฆฌ์Šค ๋ถ„๊ธฐ๊ฐ€ Develop ๋ฐ Master ๋ถ„๊ธฐ์— ๋‹ค์‹œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค
      • ์ƒˆ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ค€๋น„๋˜๋ฉด Develop ๋ธŒ๋žœ์น˜์—์„œ ๋ฆด๋ฆฌ์Šค ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ ๋ฉ๋‹ˆ๋‹ค
    • Develop
      • ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๊ฐœ๋ฐœ ์ž‘์—…์„ ์œ„ํ•œ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์ž…๋‹ˆ๋‹ค
      • ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ ๋ถ„๊ธฐ์˜ ๋ณ€๊ฒฝ ์ƒํ•ญ์„ ํ†ตํ•ฉํ•˜๊ณ  ์ฝ”๋“œ ๋ฒ ์ด์Šค๊ฐ€ ์ž‘๋™ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค
      • ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…ํ•˜๊ณ , ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ Develop์œผ๋กœ ํ•ฉ์นฉ๋‹ˆ๋‹ค
    • Feature
      • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด Develop ๋ธŒ๋žœ์น˜์—์„œ ์ƒ์„ฑ ๋ฉ๋‹ˆ๋‹ค
      • ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ๋๋‚˜๋ฉด, Develop ๋ถ„๊ธฐ๋กœ ๋‹ค์‹œ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค
        ์žฅ์ 
  1. ๋ช…ํ™•ํ•œ ๋ธŒ๋žœ์น˜ ๊ตฌ์กฐ
    1. Git ํ๋ฆ„์—๋Š” ์ž˜ ์ •์˜๋œ ๋ธŒ๋žœ์น˜ ๊ตฌ์กฐ๊ฐ€ ์žˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ ๋ธŒ๋žœ์น˜์˜ ๋ชฉ์ ๊ณผ ๋ธŒ๋žœ์น˜ ๊ฐ„์˜ ๋ณ€๊ฒฝ ํ๋ฆ„์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๋ณ‘๋ ฌ ๋ฆด๋ฆฌ์Šค ์ง€์›
    1. Git ํ๋ฆ„์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์—ฌ๋Ÿฌ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๊ฐ€ ๊ธด ํ”„๋กœ์ ํŠธ๋‚˜ ์ƒ์‚ฐ ์ค‘์ธ ์—ฌ๋Ÿฌ ๋ฒ„์ „์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    2. ๊ฐ ๋ฆด๋ฆฌ์Šค๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜๊ณ  ํ…Œ์ŠคํŠธ๋˜์–ด ๋ช…ํ™•ํ•œ ๋ฒ„์ „ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜๊ณ  ๋ฒ„๊ทธ ์œ„ํ—˜์„ ์ค„์ž…๋‹ˆ๋‹ค.
  3. ์ฝ”๋“œ ๊ฒ€ํ†  ๋ฐ ํ…Œ์ŠคํŠธ ์ ์šฉ
    1. Git ํ๋ฆ„์€ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— ํ’€ ์š”์ฒญ ๋ฐ ๊ฒ€ํ†  ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฑฐ์น˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    2. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ฆด๋ฆฌ์Šค๋˜๊ธฐ ์ „์— ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๊ณ  ์ฒ ์ €ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      ๋‹จ์ 
  • ๋ณต์žกํ•˜๊ณ , ๋ฆด๋ฆฌ์ฆˆ ์ฃผ๊ธฐ๊ฐ€ ๊น๋‹ˆ๋‹ค

Github Flow


GitHub ํ๋ฆ„์€ Git ๋ฐ GitHub์™€ ์ž˜ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๊ฒฝ๋Ÿ‰์˜ ๋ถ„๊ธฐ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์ž…๋‹ˆ๋‹ค.
์†Œ๊ทœ๋ชจ ํŒ€ ๋ฐ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ Git ํ๋ฆ„์— ๋Œ€ํ•œ ๋” ๊ฐ„๋‹จํ•˜๊ณ  ์œ ์—ฐํ•œ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค.

  • master - feature
    • Master
      • Github Flow๋Š” ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ํ•  ๋•Œ ๋ถ„๊ธฐ ํ›„ ๋ฐ”๋กœ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ์„ ํ•ฉ๋‹ˆ๋‹ค
      • ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ์‹œ ์ฝ”๋“œ ๊ฒ€ํ†  ๋ฐ ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ํŠธ๋ฆฌ์ปคํ•˜์—ฌ ์ฒ ์ €ํžˆ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค
  • ์žฅ์ 
    • ๋ธŒ๋žœ์น˜ ๋ชจ๋ธ ๋‹จ์ˆœํ™”
    • master ์˜ ๋ชจ๋“  ์ปค๋ฐ‹์€ deployable
  • ๋‹จ์ 
    • CI ์˜์กด์„ฑ ๋†’์Œ

๋ถ€์กฑํ•œ ์ ์ด๋‚˜ ์ž˜๋ชป ๋œ ์ ์„ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ์‹œ์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :>

๋Œ“๊ธ€