๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿคผ Git

[Git] Git์œผ๋กœ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ• ์•Œ์•„๋ณด๊ธฐ (feat. Git-Flow)

by Fomagran ๐Ÿ’ป 2022. 3. 18.
728x90
๋ฐ˜์‘ํ˜•

 

์•ˆ๋…•ํ•˜์„ธ์š” Foma๐Ÿ’ป ์ž…๋‹ˆ๋‹ค.

 

์˜ˆ์ „์— Github์œผ๋กœ ํ˜‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธ€์„ ์ž‘์„ฑํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. (Github Flow)

 

(ํ˜น์‹œ ์•ˆ๋ณด์‹  ๋ถ„๋“ค์€ ์—ฌ๊ธฐ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

 

ํ•˜์ง€๋งŒ Github-Flow๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Gitlab-Flow,Git-Flow ๋“ฑ ๋‹ค์–‘ํ•œ Work-Flow๋“ค์ด ์žˆ๋Š”๋ฐ์š”.

 

์˜ค๋Š˜์€ ์ข€ ๋” ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ ์ „๋žต์ธ Git-Flow์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ”๋กœ ์‹œ์ž‘ํ• ๊ฒŒ์š”~


Git-Flow๋ž€?

 

Vincent Driessen๊ฐ€ ๋งŒ๋“  Git์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ๋‚˜๋ˆ  ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

ํŠน์ง•์€ 5์ข…๋ฅ˜์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ์šด์˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

5์ข…๋ฅ˜์˜ ๋ธŒ๋žœ์น˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • Master(main)
  • Release
  • Develop
  • Feature
  • Hotfix

 

1. Master

 

๊ฐ€์žฅ ๋จผ์ € master ๋ธŒ๋žœ์น˜๋Š” ์‹ค์ œ ์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋˜๊ณ  ์šด์˜๋˜๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋งŒ๋“  ๊ธฐ๋Šฅ์„ ํ•ฉ์น˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ์ด์ƒ์ด ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 

2. Release

 

master ๋ธŒ๋žœ์น˜์— ํ†ตํ•ฉํ•˜๊ธฐ ์ „์— ์™„์„ฑ๋œ ๊ธฐ๋Šฅ์„ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๋ณดํ†ต ์ œํ’ˆ์œผ๋กœ ์ถœ์‹œ๋˜๊ธฐ ์ „์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

3. Develop

 

์—ฌ๋Ÿฌ ์—”์ง€๋‹ˆ์–ด๋“ค์ด ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ†ตํ•ฉํ•ด ๋†“์€ ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

๋‹ค์Œ ๋ฒ„์ „์„ ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•œ ๋ธŒ๋žœ์น˜๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

4. Feature

 

ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

5. Hotfix

 

์ด๋ฏธ ๋ฐฐํฌ๋œ ๋ธŒ๋žœ์น˜(master)์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ ์ˆ˜์ •ํ•˜๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.


Git Flow ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ธฐ

 

 

๊ฐ€์žฅ ๋จผ์ € master ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  develop ๋ธŒ๋žœ์น˜๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

 

ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋‚˜๋ˆ„๊ณ  ๊ธฐ๋Šฅ์— ๋งž๊ฒŒ feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด SNS์„œ๋น„์Šค๋ผ๋ฉด ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•  feature/login ์‚ฌ์ง„ ์—…๋กœ๋“œ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•  feature/imageUpload ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

ํ•ด๋‹น ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ์™„์„ฑ๋˜์—ˆ๋‹ค๋ฉด ํ•ด๋‹น feature ๋ธŒ๋žœ์น˜๋ฅผ develop ๋ธŒ๋žœ์น˜๋กœ ๋ณ‘ํ•ฉ(merge)ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด ๋๋‚ฌ๋‹ค๋ฉด ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋Š” develop์— ํ†ตํ•ฉ๋˜๊ณ  ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ์—”์ง€๋‹ˆ์–ด๋“ค์ด ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•ด ๋‚˜๊ฐ€๋ฉฐ develop ๋ธŒ๋žœ์น˜์— ์ž‘์—…์„ ์Œ“์•„๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

develop ๋ธŒ๋žœ์น˜์— ํŠน์ • ๋ฒ„์ „์„ ์ถฉ์กฑํ•  ๊ธฐ๋Šฅ๋“ค์ด ์™„์„ฑ๋˜์—ˆ๋‹ค๋ฉด develop ๋ธŒ๋žœ์น˜์—์„œ release ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

release ๋ฒ„์ „์— ๋งž๊ฒŒ release-1,release-2... ๋“ฑ์œผ๋กœ ์ด๋ฆ„์„ ์ง“๊ฒŒ ๋˜๋ฉฐ ์—ฌ๊ธฐ์„œ ์ด์ƒ์ด ์—†๋Š”์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค๋ฉด ๋‹ค์‹œ develop ๋ธŒ๋žœ์น˜์—์„œ ์ˆ˜์ •์„ ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•˜๊ณ ๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค.

 

 

release ๋ธŒ๋žœ์น˜์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ ์•„๋ฌด๋Ÿฐ ์ด์ƒ์ด ์—†๊ณ , ๊ณ ๊ฐ์—๊ฒŒ ๋ฐฐํฌํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ์ž‘์—…๋“ค์€ master์— ๋ณ‘ํ•ฉ๋˜์–ด ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ์ œํ’ˆ์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ, develop์—๋„ ๋ณ‘ํ•ฉ๋˜์–ด ๊ทธ ๋‹ค์Œ ๋ฒ„์ „์„ ์ค€๋น„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

์ด๋ฏธ ๋ฐฐํฌ๋œ master ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ์ฆ‰์‹œ ๊ธด๊ธ‰ ์ˆ˜์ • ๋ธŒ๋žœ์น˜์ธ hotfix ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

ํ•ด๋‹น hotfix ๋ธŒ๋žœ์น˜์—์„œ ๋ฒ„๊ทธ๋“ค์„ ์ˆ˜์ •ํ•˜๊ณ  master์™€ develop์— ๋ณ‘ํ•ฉ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 


Reference

 

 

Introducing GitFlow

Introducing GitFlow What Is GitFlow? GitFlow is a branching model for Git, created by Vincent Driessen. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team. Key Benefits Parallel Development

datasift.github.io

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€