#
git-flowgit-flow
๋ Vincent Driessen์ ๋ธ๋์นญ ๋ชจ๋ธ์ ์ ์ฉํ์ฌ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์์
ํ ์์๋๋ก ํ๋ git์ ํ์ฅ์ด๋ค. ๋ ์์๋ณด๊ธฐ
#
git-flow vs git-flow-avhgit-flow ์ค์น ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ฉด, git-flow-avh๋ฅผ ์ค์นํ๋ผ๋ ๊ฐ์ด๋๊ฐ ๋์ค๋๋ฐ, git-flow ์ ์ฅ์๊ฐ ์๊ณ , ์ด๊ฒ์๋ณธ์ธ ๊ฒ ๊ฐ์์ ์ฝ๊ฐ์ ํผ๋์ด ์์๋ค.
๋คํํ git-flow-avh์ ๊นํ ์ํค์ Home๊ณผ FAQ์ ๊ฐ๋ตํ ์ค๋ช ์ด์๋ค.
git-flow์์ hooks์ filter ๊ตฌํ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ณธ git-flow์ ๋ํ ํจ์น๋ฅผ์์ฑํ์ต๋๋ค. 5๊ฐ์์ด ์ง๋๋, ํจ์น๊ฐ ๊ตฌํ๋์ง ์์๊ณ ์ฐ๋ฆฌ๋ AVH Edition์ ๋ง๋๋ ์ผ์ ์ง์คํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
AVH๋ A Virtual Home์ด๋ผ๋ ์์ฑ์์ ๊ฐ์ธ ์น์ฌ์ดํธ ์ด๋ฆ์์ ๋ฐ์๋ค๊ณ ํ๋ค. ์ฐธ๊ณ
AVH Edition์ด git-flow์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ค์ ํฌํจํ๋ฉด์ hooks์ filter ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , cheatsheet ๋ฅผ ํฌํจํด์ AVH Edition์ผ๋ก ๊ฐ์ด๋ํ๋ ๋ฌธ์๊ฐ ๋ง์์ AVH Edition์ผ๋ก ์ค์น๋ฅผ ์งํํ๋ค.
#
์ค์นํ๊ธฐInstallation ์์ ์ด์์ฒด์ ๋ณ ์ค์น ๊ฐ์ด๋๋ฅผ ๋ณผ ์ ์๋ค.
MacOS ๊ธฐ์ค์ผ๋ก๋ brew๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ๋ค.
brew install git-flow-avh
1.7.0
๋ฒ์ ์์ git flow init
์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋๋ฐ, (์ด์) ~/.gitflow_export
์ FLAGS_GET_OPT_CMD
ํ๊ฒฝ ๋ณ์๊ฐ ์๋ ๊ฒ์ด ์์ธ์ด์๋ค. ๋ฒ์ ์ด ์
๋ฐ์ดํธ ๋๋ฉด์ ์ด๋ฅผ ์ญ์ ํด์ผ ํ๋ค๊ณ ํ๋ค. ์ฐธ๊ณ
#
์์ํ๊ธฐ๋จผ์ , git ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
git init hello-git-flow
git ๋ ํฌ์งํ ๋ฆฌ๋ก ์ด๋ํ ํ, git flow๋ฅผ ์์ํ๋ค.
cd hello-git-flowgit flow init
CLI์ ์ง์์ ๋ฐ๋ผ ์งํํ์ฌ ๋ธ๋์น ์ปจ๋ฒค์ ์ ์ ํ๋ค.
#
๋ช ๋ น์ดgit-flow ๋ช ๋ น์ด ํ์งค ์์ฝ
#
๋๋์ ํ์ ํ๋์ Origin ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋๊ณ , main
, develop
, feature/
, fix/
... ์ผ๋ก ๋ธ๋์นญํ ํ, Pull Request -> Merge -> Pull (develop) ๋ฐฉ์์ workflow๋ฅผ ์ฌ์ฉํ๋๋ฐ git flow์ finish ๋ช
๋ น์ด๊ฐ ๋ก์ปฌ์์ ๋จธ์ง๋๋ ๋ฐฉ์์ด๋ผ, Pull Request์ ํจ๊ป ์ด๋ป๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ ์ ํ์ง ๊ณ ๋ฏผ์ด ๋ค์๋ค.
๋คํํ, Stack Overflow์ ๋น์ทํ ๊ณ ๋ฏผ์ด์์๋ค. ๊ธฐ์กด ์ํฌํ๋ก์ฐ ๋๋ก ์ฌ์ฉํ๋ ค๋ฉด, finish ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , publish -> PR -> Merge -> Pull ์์ผ๋ก ์งํํ๋ฉด ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก git-flow-avh์ hooks ๊ธฐ๋ฅ์ํ์ฉํด PR ์์ฑ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ ์ ์๋ค.
๋๋, ํ๋์ Upstream ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋๊ณ forkํ์ฌ ํ์ ๋์์์ ๊ฐ์ธ Origin ๋ ํฌ์งํ ๋ฆฌ์์ PRํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ ๋ฐฉ์๋ ์๋ค. ์ฐธ๊ณ
์ด๋ฌํ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด, ๊ฐ์์ Origin repo์์ ๋ถ๋ด์์ด ๋ค์ํ ์คํ๋ค์ ํด๋ณผ ์์๋ ์ฅ์ ๋ ์์ ์ ์๋ค๊ณ ํ๋ค.