Git-flow๋ ๊ธฐ๋ฅ์ด ์๋๋ผ ์๋ก๊ฐ์ ์ฝ์์ธ ๋ฐฉ๋ฒ๋ก ์
๋๋ค.
Vincent Driessen์ ๋ธ๋ก๊ทธ ๊ธ์ ์ํด ๋๋ฆฌ ํผ์ง๊ธฐ ์์ํ๊ณ ํ์ฌ๋ Git์ผ๋ก ๊ฐ๋ฐํ ๋ ๊ฑฐ์ ํ์ค๊ณผ ๊ฐ์ด ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ๋ก ์
๋๋ค.
master: ๊ธฐ์ค์ด ๋๋ ๋ธ๋์น๋ก ์ ํ์ ๋ฐฐํฌํ๋ ๋ธ๋์น์ ๋๋ค.develop: ๊ฐ๋ฐ ๋ธ๋์น๋ก ๊ฐ๋ฐ์๋ค์ด ์ด ๋ธ๋์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ ์์ ํ ๊ธฐ๋ฅ๋ค์ ๋ณํฉ(Merge)ํฉ๋๋ค.feature: ๋จ์ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น๋ก ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉด develop ๋ธ๋์น์ ํฉ์นฉ๋๋ค.release: ๋ฐฐํฌ๋ฅผ ์ํด master ๋ธ๋์น๋ก ๋ณด๋ด๊ธฐ์ ์ ๋จผ์ **QA(ํ์ง๊ฒ์ฌ)**๋ฅผ ํ๊ธฐ์ํ ๋ธ๋์น์ ๋๋ค.hotfix: master ๋ธ๋์น๋ก ๋ฐฐํฌ๋ฅผ ํ๋๋ฐ ๋ฒ๊ทธ๊ฐ ์๊ฒผ์ ๋ ๊ธด๊ธ ์์ ํ๋ ๋ธ๋์น์ ๋๋ค.
master์develop๊ฐ ์ค์ํ๋งค์ธ ๋ธ๋์น์ด๊ณ ๋๋จธ์ง๋ ํ์์ ์ํด์ ์ด์ํ๋ ๋ธ๋์น๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
master๋ธ๋์น์์ ์์ํฉ๋๋ค.- ๋์ผํ ๋ธ๋์น๋ฅผ
develop์๋ ์์ฑํฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ด develop ๋ธ๋์น์์ ๊ฐ๋ฐ์ ์งํํฉ๋๋ค. - ๊ฐ๋ฐ์ ์งํํ๋ค๊ฐ ํ์๊ฐ์
, ์ฅ๋ฐ๊ตฌ๋ ๋ฑ์ ๊ธฐ๋ฅ ๊ตฌํ์ด ํ์ํ ๊ฒฝ์ฐ A๊ฐ๋ฐ์๋ develop ๋ธ๋์น์์
feature๋ธ๋์น๋ฅผ ํ๋ ์์ฑํด์ ํ์๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ B๊ฐ๋ฐ์๋ develop ๋ธ๋์น์์feature๋ธ๋์น๋ฅผ ํ๋ ์์ฑํด์ ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. - ์๋ฃ๋ feature ๋ธ๋์น๋ ๊ฒํ ๋ฅผ ๊ฑฐ์ณ ๋ค์
develop๋ธ๋์น์ ํฉ์นฉ๋๋ค. (Merge) - ์ด์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์๋ฃ๋๋ฉด develop ๋ธ๋์น๋ฅผ
release๋ธ๋์น๋ก ๋ง๋ญ๋๋ค. ๊ทธ๋ฆฌ๊ณ QA(ํ์ง๊ฒ์ฌ)๋ฅผ ํ๋ฉด์ ๋ณด์์ ์ ๋ณด์ํ๊ณ ๋ฒ๊ทธ๋ฅผ ํฝ์คํฉ๋๋ค. - ๋ชจ๋ ๊ฒ์ด ์๋ฃ๋๋ฉด ์ด์ release ๋ธ๋์น๋ฅผ
master๋ธ๋์น์develop๋ธ๋์น๋ก ๋ณด๋ ๋๋ค.master๋ธ๋์น์์ ๋ฒ์ ์ถ๊ฐ๋ฅผ ์ํด ํ๊ทธ๋ฅผ ํ๋ ์์ฑํ๊ณ ๋ฐฐํฌ๋ฅผ ํฉ๋๋ค. - ๋ฐฐํฌ๋ฅผ ํ๋๋ฐ ๋ฏธ์ฒ ๋ฐ๊ฒฌํ์ง ๋ชปํ ๋ฒ๊ทธ๊ฐ ์์ ๊ฒฝ์ฐ
hotfix๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๊ธด๊ธ ์์ ํ ํ๊ทธ๋ฅผ ์์ฑํ๊ณ ๋ฐ๋ก ์์ ๋ฐฐํฌ๋ฅผ ํฉ๋๋ค.
branch๋ฅผ merge ํ ๋๋ ํญ์ --no-ff ์ต์
์ ๋ถ์ฌ์ branch์ ๋ํ ๊ธฐ๋ก์ด ์ฌ๋ผ์ง๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ฒ์ ์์น์ผ๋ก ํฉ๋๋ค.

GitFlow๋ develop๊ณผ master๋ฅผ ๋๋๋ ์์ด๋์ด๊ฐ ๊ฐ์ฅ ํต์ฌ์
๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ version ๊ด๋ฆฌ ๋ฐฉ์๊ณผ์ ์ฐจ๋ณ์ ์ด๊ธฐ๋ ํฉ๋๋ค.
๋๋จธ์ง feature, release, hotfix ๋ธ๋์น๋ค์ develop๊ณผ master๋ฅผ ๋๋ ๊ฒฐ์ ์ ๋ค๋ผ ์์ฐ์ค๋ฝ๊ฒ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
master๋ ํ์ฌ production์ ์ํ์ ์ผ์นํ๋ branch ์ ๋๋ค.develop์ ํ์ฌ ๊ฐ๋ฐ์ด ์๋ฃ๋ ์ํ์ ์ผ์นํ๋ branch ์ ๋๋ค.- ๊ฐ๋ฐ์ด ์๋ฃ๋์๋ค๋ ๊ฒ์ ๋ค์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ์ํด ์ธ์ ๋ ๋ฐฐํฌ๋ ์ ์๋ ์ํ๋ฅผ ๋งํฉ๋๋ค.
- ์ด ๋ branch ๋ (ํ๋ก์ ํธ๊ฐ ์กด์ฌํ๋ ํ) ์์ํ ์กด์ฌํฉ๋๋ค.
- ๋ฌธ์ ์ํฉ
develop์์ ์๋ก์ด feature ์์ ์ commit ํฉ๋๋ค.origin/develop์ push๋ฅผ ํฉ๋๋ค.- ๊ทธ ์ฌ์ด์ ๋๊ตฐ๊ฐ commit์ ํ ์ฌ๋์ด ์๋ค๋ฉด ์ถฉ๋์ด ์ผ์ด๋ฉ๋๋ค.
- ๋ชฉ์
develop์ ํ์ฌ ๊ฐ๋ฐ ์๋ฃ ์ํ์ ์ผ์น์ํค๋ฉด์๋ ๋ค๋ฅธ ๋๋ฃ์ conflict๊ฐ ์๊ธฐ์ง ์๋๋ก ์์ ํ๊ธฐ ์ํดfeaturebranches๋ฅผ ์ด์ฉํฉ๋๋ค. - ์์
develop์์featurebranch ๋ฅผ ์์ฑํด์ ์๋ก์ด ์์ ์ ์์ํฉ๋๋ค.- ex.
feature/ISSUE-101
- ex.
featurebranch ์์ ์์ ์ด ๋๋๋ฉดfeaturebranch๋ฅผ ์ต์develop์ merge ํฉ๋๋ค.- conflict ์์ด ๊น๋ํ๊ฒ ํด๊ฒฐ ๋ฉ๋๋ค.
- ๋ฌธ์ ์ํฉ
- ๋ฐฐํฌ๋ฅผ ์ค๋นํฉ๋๋ค.
develop์์ChangeLog.md๋ ์์ฑํ๊ณ version๋ช ๋ ๋ฐ๊ฟ์ฃผ๊ณ ๋ฐฐํฌ๋ฅผ ์ํ ๋ช๋ช ์์ ์ ์ฒ๋ฆฌํด์ค๋๋ค.develop์master์ mergeํ๊ณ ๋ฐฐํฌํ์ง๋งrelease์feature๊ฐ ์๋์น์๊ฒ ํจ๊ป ๋ฐฐํฌ ๋๋ ์ํฉ์ ๋๋ค.
- ๋ชฉ์
release ์ค๋น๋ฅผ ์์ํ ๋ค์develop์ merge ๋๋ ๋ค์ release feature ๋ก๋ถํฐ ์์ ํ release ๋ฅผ ํ๊ธฐ ์ํดreleasebranches๋ฅผ ์ด์ฉํฉ๋๋ค. - ์์
develop์์releasebranch๋ฅผ ์์ฑํด์ ์๋ก์ด ์์ ์ ์์ํฉ๋๋ค.- ex.
release/1.1.0
- ex.
releasebranch์์ version bumping, minor bug fix ๋ฑ์ ์์ ์ด ๋๋๋ฉดreleasebranch๋ฅผ ์ต์develop๊ณผmaster์ ๊ฐ๊ฐ merge ํฉ๋๋ค.develop:releasebranch์์์ bug fix ๋ฑ ์์ ์ฌํญ๋ค์ด develop ์๋ ๋ฐ์๋์ด์ผ ํ๊ธฐ ๋๋ฌธmaster: ์ version์ release ํ๊ธฐ ์ํด
master์ merge commit์ version์ tag๋ก ๋ถ์ฌ์ค๋๋ค.- ex.
1.1.0
- ex.
- ์ด์
releasebranch๋ฅผ ์์ฑํ ํ์develop์ ์ด๋ค ์์ ์ด merge๋์ด๋ ์์ ํ๊ฒ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ๋ฌธ์ ์ํฉ
- production ์์ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค.
develop์์ ์์ ํด์ ์ฌ๋ฆฌ๋ ค ํ๋๋ฐ ์ด๋ฏธ ๋ค์ release์ feature๋ค์ด commit๋ ์ํฉ์ ๋๋ค.
- ๋ชฉ์
develop๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก production์์ ๋ฐ์ํ ๋ฌธ์ ๋ฅผmaster์์ ์ฒ๋ฆฌํ๊ธฐ ์ํดhotfixbranches๋ฅผ ์ด์ฉํฉ๋๋ค. - ์์
master์์hotfixbranch๋ฅผ ์์ฑํด์ bug fix, version bumping๋ฑ์ ์์ ๋ค์ ์งํํฉ๋๋ค.- ex.
hotfix/1.1.1
- ex.
hotfixbranch์์ ์์ ์ด ๋๋๋ฉดhotfixbranch๋ฅผ ์ต์develop๊ณผmaster์ ๊ฐ๊ฐ mergeํฉ๋๋ค.develop:hotfixbranch์์์ bug fix ๋ฑ ์์ ์ฌํญ๋ค์ด develop ์๋ ๋ฐ์๋์ด์ผ ํ๊ธฐ ๋๋ฌธmaster: ๋ฒ๊ทธ๊ฐ ์์ ๋ ์ version์ release ํ๊ธฐ ์ํด
master์ merge commit์ version์ tag๋ก ๋ถ์ฌ์ค๋๋ค.- ex.
1.1.1
- ex.
- ์ด์
develop์ ์์ ๊ณผ ์๊ด์์ดmaster์ bugfix๋ฅผ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.







