์๋ ํ์ธ์ 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
'๐คผ Git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๐คผ Git] Github ์คํ์์ค ๊ธฐ์ฌํด๋ณด๊ธฐ (0) | 2021.12.28 |
---|---|
[Git] ์๊ธฐ ์ปดํจํฐ(Local) ํด๋ Github์ ์ฐ๊ฒฐํ๊ธฐ (7) | 2021.10.14 |
[Git] ์ฌ๋ฌ ๋ ํฌ์งํ ๋ฆฌ ํ๋๋ก ํฉ์น๊ธฐ(Merge multiple repository) (6) | 2021.08.14 |
[Git] Github ๊ฐ์ ์ ์ฅ์ ํจ๊ป ์ฐ๊ธฐ(feat. Github Flow) (2) | 2021.05.13 |
[Github] ๊นํ ๋ฆฌ๋๋ฏธ ํ๋กํ ๊พธ๋ฏธ๊ธฐ (0) | 2021.03.08 |
๋๊ธ