Git flow
Git flow๋?
ํ๋์ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ์งํํ๋ ๊ฒฝ์ฐ, ์ถฉ๋์ ๋ง๊ณ ์ผ๊ด๋๊ฒ ์์ ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ ๊ฐ์ธ ๋ ํฌ์์ ๋ฏธ๋ฆฌ ๊ธฐ๋ฅ์ ๊ตฌํ์ ํด๋ด์ผ๋ก์จ ํ๋ก์ ํธ๊ฐ ์ ์๋ํ๋์ง ํ์ธํ๋ฉฐ ํ๋ก์ ํธ๋ฅผ ์ด์ํ๋ ๋ธ๋์น ์ ๋ต ๋ฐฉ๋ฒ.
- Git-flow ์ ์ฑ
- ์ํํธ์จ์ด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์ํ ์ฑ์ด๋ ์๋ฃจ์ , ํน์ public API์ ์ ํฉํ ์ํฌํ๋ก์ฐ
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ Git-flow๋ ๊ณ ๋ คํ ์ ๋ต์ด ์๋๋ค.
- ์ ๊ธฐ์ ์ผ๋ก ๋ฐฐํฌํด์ผํ๋ ํ๋ก์ ํธ
- ์๋ง์ ํ๋ก์ ํธ ๋์ ์งํ
- GitHub-flow ์ ์ฑ
- ์์ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ํ๋ก์ ํธ์์ ์ฌ์ฉ.
- ์ ๊ฐ ์ฌ์ฉํ๋ git flow ๋ฐฉ์์ด ์ด๊ฑฐ์ธ๊ฑฐ ๊ฐ์์.
๋ง์ฝ ์ฅ๊ธฐ๊ฐ ํ๋ก์ ํธ๊ฐ ์กด์ฌํ๊ณ , hotfix ๋ฑ ์ ์ง๋ณด์๋ฅผ ์ํ ์์ ์ ์ํํด์ผ ๋๋ ํ์ Git-flow๋ฅผ, ์์ ๋ฐฐํฌํ๋ ํ์ ๊ฐ๋จํ GitHub-flow๊ฐ ์ ํฉํ๋ค.
Git Repository ๊ตฌ์ฑ
- Upstream Remote Repository: ๊ฐ๋ฐ์๋ค์ด ๊ณต์ ํ๋ ์ ์ฅ์๋ก ์ต์ ์์ค์ฝ๋๊ฐ ์ ์ฅ๋์ด์๋ ์๊ฒฉ๋ธ๋์น
- Origin Remote Repository: Upstream Repository๋ฅผ Forkํ ์๊ฒฉ ๊ฐ์ธ ์ ์ฅ์ ex) ๊ฐ์ธ์ ์ฅ์์ master(default)๋ธ๋์น
- Local Repository: ๋ด ์ปดํจํฐ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ธ๋ธ๋์น ex) ๊ฐ์ธ์ ์ฅ์์ ์์ ๋ธ๋์น
Git flow ์ฌ์ฉ๋ฐฉ๋ฒ
์์ ์ ์์ํ๊ธฐ ์ ์ ์ถฉ๋์ ๋ง๊ธฐ์ํด ์ต์ ์์ค์ฝ๋๊ฐ ์ ์ฅ๋์ด์๋ ์๊ฒฉ๋ธ๋์น์ pullํด์ฃผ์๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค!
git pull upstream [์๊ฒฉ ๋ธ๋์น์ pullํด์ฌ ๋ธ๋์น๋ช ]โ
์๊ฒฉ๋ธ๋์น์ ์ฐ๊ฒฐํ๋ค. (Forkํด ์จ ๋ธ๋์น์ฌ์ผ ํฉ๋๋ค.)
git remote add upstream [์๊ฒฉ๋ธ๋์น ์ฃผ์]
- origin: ์๊ฒฉ์ ์ฅ์์ ์ฐ๊ฒฐ๋์ด์๋ ๊ฐ์ธ ๋ ํฌ
- upstream: ์๊ฒฉ์ ์ฅ์
git flow๋ฅผ ์ค์นํ๋ค.
git flow init
- ๋ธ๋์น๋ ํ์ ์ค์ ํ ์ ์์ผ๋ ์ด๋ฐ ๋ฌธ๊ตฌ๊ฐ ๋จ๋ฉด ๊ทธ๋ฅ ๋๊น์ง Enter๋ฅผ ์ฐํํ๋ค.
- ์๋์ผ๋ก develop๋ธ๋์น๊ฐ ์์ฑ๋์ด ์๋ค.
๋ด๊ฐ ์์ ํ ๋ธ๋์น๋ฅผ ์์ฑํ๋ค.
๋ณด์กฐ ๋ธ๋์น๋ ์ผ์ ๊ธฐ๊ฐ ๋์๋ง ์ ์ง๋ฉ๋๋ค.
- master : ์ ํ์ผ๋ก ์ถ์๋ ์ ์๋ ๋ธ๋์น (๋ฉ์ธ ๋ธ๋์น)
- develop : ๋ค์ ์ถ์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น (๋ฉ์ธ ๋ธ๋์น)
- feature : ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น (๋ณด์กฐ ๋ธ๋์น)
- release : ์ด๋ฒ ์ถ์ ๋ฒ์ ์ ์ค๋นํ๋ ๋ธ๋์น (๋ณด์กฐ ๋ธ๋์น)
- hotfix : ์ถ์ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น (๋ณด์กฐ ๋ธ๋์น)
// ์์
ํ ๋ธ๋์น๋ช
์ ๋ด๊ฐ ์ด๋ค ๊ธฐ๋ฅ์ ๊ตฌํํ๋์ง ์ฝ๊ฒ ์์์๋ ๋ธ๋์น๋ช
์ ์์ฑํ๋๊ฒ์ด ์ข์ต๋๋ค.
git flow [๋ณด์กฐ ๋ธ๋์น] start [์์
ํ ๋ธ๋์น๋ช
]
- ์๋์ผ๋ก ์์ ํ ๋ธ๋์น๊ฐ ์์ฑ๋์ด ์๋ค.
- ํด๋น ๋ธ๋์น์์ ๋ง์๊ป ๊ธฐ๋ฅ๊ตฌํ์ ์์ ํ ํ, ์๋ฃ๋๋ฉด ์ปค๋ฐ์ ํ๋ค.
๋ด๊ฐ ์์ ํ ๋ธ๋์น๋ฅผ ๋ฉ์ธ ๋ธ๋์น(develop)์ merge์ ๋์์ ๋ซ๋๋ค.
git flow [๋ณด์กฐ ๋ธ๋์น] finish [์์
ํ ๋ธ๋์น๋ช
]
- ์๋์ผ๋ก ์์ ๋ฌผ์ด ๋ฉ์ธ ๋ธ๋์น(develop)์ merge๋๊ณ , ์์ ํ ๋ธ๋์น๊ฐ ์ญ์ ๋์๋ค.
๋ฉ์ธ ๋ธ๋์น(develop)์ pushํ๋ค.
git push origin develop
์๊ฒฉ๋ธ๋์น๋ก์ pull requests๋ฅผ ๋จ๊ธด ํ, ํ์๋ค์ ์ฝ๋๋ฆฌ๋ทฐ๊ฐ ๋์ด๋๊ณ , ์๊ตฌ์ฌํญ์ด ๋ชจ๋ ์๋ฃ๋๋ฉด ์๊ฒฉ๋ธ๋์น๋ก merge๋ฅผ ํ๋ค.
โ์๊ฒฉ๋ธ๋์น๋ก ๋ฐ๋ก pushํ๋ฉด ๋๋ฆฌ๋๋ ๊ฒ๋๋ค.
์ฐธ๊ณ
์ฐ๋ฆฐ Git-flow๋ฅผ ์ฌ์ฉํ๊ณ ์์ด์ | ์ฐ์ํํ์ ๋ค ๊ธฐ์ ๋ธ๋ก๊ทธ
{{item.name}} ์๋ ํ์ธ์. ์ฐ์ํํ์ ๋ค ๋ฐฐ๋ฏผํ๋ก ํธ๊ฐ๋ฐํ์์ ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์ ํ๊ณ ์๋ ๋๋ํธ์ ๋๋ค. ์ค๋์ ์ ํฌ ์๋๋ก์ด๋ ํํธ์์ ์ฌ์ฉํ๊ณ ์๋ Git ๋ธ๋์น ์ ๋ต์ ์๊ฐํ๋ ค๊ณ ํฉ
techblog.woowahan.com
Git ๋ธ๋์น ์ ๋ต ์๋ฆฝ์ ์ํ ์ ๋ฌธ๊ฐ์ ์กฐ์ธ๋ค – ํํด ๋ธ๋ก๊ทธ | ๊ธฐ์ ๋ธ๋ก๊ทธ
Git ๋ธ๋์น ์ ๋ต ํจ๊ณผ์ ์ผ๋ก VCS๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ก์ ํธ ์ฌ๊ฑด์ ์ด์ธ๋ฆฌ๋ ๋ธ๋์น ์ ๋ต์ ์ธ์์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํ ์ฒซ ๋ฒ์งธ๋ ๋ฐ๋ก ๋ธ๋์น ์ ๋ต์ ๋ํ ๋น๊ต ๋ถ์์ ๋๋ค. Git๊ธฐ๋ฐ์ผ๋ก ์ํฌํ๋ก์ฐ
blog-wp.hwahae.co.kr