Git์ด๋?
git์ ์ปดํจํฐ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ์ฌ๋ฌ ๋ช ์ ์ฌ์ฉ์๋ค ๊ฐ์ ํด๋น ํ์ผ๋ค์ ์์ ์ ์กฐ์จํ๊ธฐ ์ํ ์คํ์์ค ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ค.
์ฃผ๋ก ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉฐ ์ฝ๋ ๊ด๋ฆฌ์๋ ์ฌ์ฉ๋์ง๋ง ์ด๋ ํ ํ๋ก์ ํธ์ ๋ณ๊ฒฝ์ฌํญ์ ์ง์์ ์ผ๋ก ์ถ์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์ ์๋ค. (๋๋ ๋ณดํต ์์ค์ฝ๋ ๊ด๋ฆฌ์ ๋ณ๊ฒฝ์ฌํญ ์ถ์ ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค)
Git-flow๋?
Git-flow๋ Git์ด ํ์ฑํ๊ฐ ๋ 2010๋ ์ ๋์ Vincent Driessen์ด๋ผ๋ ์ฌ๋์ด ๋ง๋ Git์ ์ฌ์ฉํ ๊ฐ๋ฐ ์์ ์ ์ฐจ์ด๋ค. Git-flow๋ผ๊ณ ํด์ ํ๋ก๊ทธ๋จ ๊ฐ์ง๋ง ํ๋ก๊ทธ๋จ์ด ์๋ ์ฝ์, ๊ท์น๊ฐ์ ๊ฐ๋ ์ด๋ค.
Vincent Driessen๋ํ Git-flow๋ ์๋ฒฝํ ๋ฐฉ๋ฒ๋ก ์ด ์๋, ๊ฐ์ ํ์ ๋ง๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ณํํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ์ธ๊ธํ๋ค.
Git-flow์ ๋ธ๋์น
Git-flow์ ๋ธ๋์น๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์๋ค.
- master ์ devleop๋ธ๋์น
- master์ develop๋ธ๋์น๊ฐ ์กด์ฌํ๊ณ , develop๋ธ๋์น๋ master ๋ธ๋์น์์ ์์๋ ๋ธ๋์น.
- develop๋ธ๋์น์๋ ์์๋ก ๋ฒ๊ทธ๋ฅผ ์์ ํ ์ปค๋ฐ๋ค์ด ์ถ๊ฐ๋๊ฒ ๋๋ค.
- ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ develope ๋ธ๋์น์์ ์์ํ๋ feature๋ธ๋์น๋ฅผ ์์ฑ
- ์ด feature๋ธ๋์น๋ ๊ธฐ๋ฅ ์ถ๊ฐ ์์ ์ด ์๋ฃ๋์๋ค๋ฉด, develop ๋ธ๋์น๋ก merge
- ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ develope ๋ธ๋์น์์ ์์ํ๋ feature๋ธ๋์น๋ฅผ ์์ฑ
- develop๋ธ๋์น์ ์ด๋ฒ ๋ฒ์ ์ ํฌํจํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ด merge๋์๋ค๋ฉด , QA๋ฅผ ์ํด develop๋ธ๋์น์์ release๋ธ๋์น๋ฅผ ์์ฑ
- QA๋ฅผ ๋ฌด์ฌํ ํต๊ณผํ๊ฒ๋๋ฉด relase๋ธ๋์น๋ฅผ master์ develop๋ธ๋์น๋ก merge
- QA๋ฅผ ์งํํ๋ฉด์ ๋ฐ์ํ ๋ฒ๊ทธ๋ค์ ๋ชจ๋ release๋ธ๋์น์ ์์
master์ develop์ ํญ์ ์ ์ง๋๋ ๋ฉ์ธ ๋ธ๋์น๋ค์ด๋ฉฐ ๊ทธ ์ธ์ feature, release, hotfixes๋ ํ์ํ ๊ธฐ๊ฐ์๋ง ์ ์ง๋๋ ๋ณด์กฐ ๋ธ๋์น๋ค์ด๋ค.
๋ค์์ Vincent Driessen์ ๋ธ๋ก๊ทธ์์ Git-flow๋ฅผ ์ค๋ช ํ ๋ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง์ด๋ค.
ํ์๋ผ์ธ์ ๋ณด๋ฉด ์๊ฒ ์ง๋ง ์ฒ์์๋ master๋ก ์์ํด develop๋ธ๋์น๋ง ์กด์ฌํ๋ค.
์์ง ์ํํธ์จ์ด๋ฅผ ๋ฐฐํฌํ์ง ์์๊ธฐ ๋๋ฌธ์ develop๋ธ๋์น์์ ๊ฐ๋ฐ์ ์์ํ๋ค.
๊ฐ๋ฐ์ ์งํํ๋ค๊ฐ ์ถ๊ฐ๋ก ํ์ํ ๊ธฐ๋ฅ์ด ์๊ธฐ๋ฉด feature๋ธ๋์น๋ฅผ ์์ฑํด ์์ ์ ํ๋ค.
feature๋ธ๋์น๋ ์ธ์ ๋ develop๋ธ๋์น๋ก๋ถํฐ ์์๋๋ค.
๊ธฐ๋ฅ์ ๋ค ๊ฐ๋ฐํ๋ค๋ฉด ์์ ํ feature๋ธ๋์น๋ฅผ ๊ฒํ ํ ํ develop๋ธ๋์น์ ๋ณํฉํ๋ค.
์ด์ ์ด๋ฒ ๋ฒ์ ์์ ํ์ํ ๊ธฐ๋ฅ์ด ๋ชจ๋ ๊ฐ๋ฐ๋์๋ค๋ฉด QA๋ฅผ ์ํด release๋ธ๋์น๋ฅผ ์์ฑํ๋ค.
QA๋ฅผ ์งํํ๋ฉฐ ๋ฐ๊ฒฌํ๋ ๋ฒ๊ทธ๋ค์ ๋ชจ๋ ์ด release๋ธ๋์น๋ฅผ ํตํด fix๋๋ค.
์ด์ QA๊ณผ์ ์ด ๋ชจ๋ ๋๋ฌ๋ค๋ฉด release๋ธ๋์น๋ฅผ master์ develop๋ธ๋์น๋ก ๋ณํฉํ๋ค.
๊ทธ๋ฆฌ๊ณ master๋ธ๋์น์ ๋ฒ์ ๋ช ์๋ฅผ ์ํ ํ๊ทธ๋ฅผ ์์ฑ ํ ๋ฐฐํฌํ๋ค.
์ฌ๊ธฐ๊น์ง๊ฐ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ฐ ๋จ๊ณ์์์ Git-flow์ด๋ค.
ํ์ง๋ง ๋ฐฐํฌ ํ์๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ๊ธด๊ธํ๊ฒ ์์ ์ ํด์ผํ๋๋ฐ ๊ทธ๋ด ๊ฒฝ์ฐ hofixes๋ธ๋์น๋ฅผ ์์ฑํด ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค.
๋ฒ๊ทธ ์์ ์ด ์๋ฃ๋์๋ค๋ฉด release๋ธ๋์น๊ฐ ์๋ฃ๋ฌ์ ๋์ ๊ฐ์ด master์ develop๋ธ๋์น๋ก ๋ณํฉ ํ ๋ฒ๊ทธ ์์ ์ ์๋ฃํ๋ค๋ ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ค.
๋ฒ์ ํ๊ทธ
๋ณดํต ์ํํธ์จ์ด๋ฅผ ํ์ํ ๋ ๋ฒ์ ์ x.x.x์ ํํ๋ก ์ด๋ฃจ์ด์ง๋ค. ์ด ์ซ์๋ค์ ๋ฌด์์ ์๋ฏธํ ๊น? ๋ฒ์ ์ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ์ซ์๋ Major Version์ ์๋ฏธํ๋ค. Major Version์ ๋ณดํต 1๋ก ์์ํด์ ์ํํธ์จ์ด ์ ์ฒด์ ์ผ๋ก ํฐ ๋ณํ๊ฐ ์๊ฒผ์๋ ๋ฒ์ ์ ์ ํ๋ค. ๋ ๋ฒ์งธ ์ซ์๋ Minor Version์ ์๋ฏธํ๋ค. Miner Version์ ๋ณดํต 0์ผ๋ก ์์ํด์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ ๊ธฐ์กด ๊ธฐ๋ฅ์ ์์ ๋ฑ์ ๋ณํ๊ฐ ๋ฐ์ํ์ ๋ ๋ฒ์ ์ ์ ํ๋ค. ๋ง์ง๋ง ์ธ ๋ฒ์งธ ์๋ฆฌ๋ Build or Maintenance Version์ด๋ผ๊ณ ํ๋ฉฐ ์์ํ ๋ฒ๊ทธ๋ ๋ด๋ถ์ ์ฝ๋ ๋ณด์ ๋ฑ์ ๋ณํ๊ฐ ๋ฐ์ํ์ ๋ ๋ฒ์ ์ ์ ํ๋ค. ์ด ๋ฒ์ ์ 0์ผ๋ก ์์ํ์ง๋ง ์๋ตํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
Reference.
'๐ฅ > ๊ธฐํ ๋ฑ๋ฑ ๐ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ฐ๋ฐ์์] MVC ํจํด์ด๋ (0) | 2021.08.18 |
---|