- ๐ gitflow๋?
- ๐ workflow๋?
Git Flow๋ Git์ผ๋ก ํ์๊ด๋ฆฌ๋ฅผ ํ ๋ ๋ธ๋์น๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ธ๋์น ๊ด๋ฆฌ ์ ๋ต(Branch management strategy)์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ๋ธ๋์น๋ค์ ๊ตณ์ด ์ ๋ต๊น์ง ์ธ์์ ๊ด๋ฆฌ๋ฅผ ํด์ผ๋ ๊น?
ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์๊ฑฐ๋ ํผ์์ ๊ฐ๋ฐ์ ํ ๊ฒฝ์ฐ branch? ์๋ master์์ ๊ทธ๋ฅ ์์
ํด์ ๋ฐฐํฌํด๋ ์๊ด์์ ๊ฒ์ด๋ค.
ํ์ง๋ง ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ ธ์ ํ์์ด ๋์ด๋ฌ์ ๊ฒฝ์ฐ ๋๊ตฐ๊ฐ๋ ํ๋ฃจ ์ข ์ผ conflict๋ฅผ ํด๊ฒฐํด์ผ ํ๋ฉฐ, ์ด์๊ฐ ๋ฐ์ํ์ ๋ ๊ฐ๋ฐํ ์ฝ๋๋ฅผ ๋ค์ ๋๋๋ฆฌ๊ณ ์ด๋ฌํ ๊ณผ์ ์์ ๊ฐ๋ฐ์ ๋ฉ์ถฐ์ผ ๋๋ ๋ถํธํจ์ด ์๋ค.
๋ฌผ๋ก ํ์ฌ๋ง๋ค ํ๋ก์ ํธ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ด ์๊ฒ ์ง๋ง, ์์ ๊ฐ์ ๊ณผ์ ๋ค์ ์ต์ํํ๊ณ ํ์๊ด๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ๊ธฐ ์ํด ์๊ฒจ๋ ์ ๋ต์ด๋ค.
Git branch์ ์ข ๋ฅ๋ ์๋ ๋ค์ฏ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
- master : ์ ํ์ผ๋ก ์ถ์๋ ์ ์๋ ๋ธ๋์น
- develop : ๋ค์ ์ถ์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- feature : ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น
- release : ์ด๋ฒ ์ถ์ ๋ฒ์ ์ ์ค๋นํ๋ ๋ธ๋์น
- hotfix : ์ถ์ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น
๊น์๋ ๋ธ๋์น๊ฐ ์๋ค. ํผ์ ๊ฐ๋ฐ์ ์งํํ ๋๋ master(๋๋ main) ๋ธ๋์น ํ๊ณณ์์๋ง ์์
์ ํ๋ค.
ํ์ง๋ง ์ฌ๋ฌ ํ์๋ค๊ณผ ํ์
์ ํด์ผํ ๋๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
ํ์
์ ํ ๋๋, master
๋ธ๋์น๋ ํ๋ก๋์
์ ๋ฐฐํฌํ ์ค๋น๊ฐ ๋ ์ํ๋ง ์ฌ๋ฆฌ๋๋ก ํ๋ค.
๊ทธ๋ฆฌ๊ณ master ๋ธ๋์น์์ ๋์จ dev
๋ธ๋์น์์ ๊ฐ๋ฐ์ ํ๋ค.
๊ฐ๋ฐ์ ๋ง์น๊ณ , ํ๋ก๋์ ์ ๋ฐฐํฌํ ์ค๋น๊ฐ ๋๋ฉด master ๋ธ๋์น์ ๋ค์ ํฉ์น๊ฒ๋๋ค.(merge)
์ฌ๊ธฐ์ ๋ ๋์๊ฐ์ dev
๋ธ๋์น์์ ๊ธฐ๋ฅ๋ณ๋ก feature
๋ธ๋์น๋ฅผ ๋นผ์ ๊ฐ๋ฐํ๊ณ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์๋ฃ๋๋ฉด dev ๋ธ๋์น์ ํฉ์น๋ค.
hot-fix ๋ธ๋์น๋ ๋ง ๊ทธ๋๋ ๊ธด๊ธํ๊ฒ ์๋ฌ๋ฅผ ๊ณ ์น๊ธฐ ์ํด ๋ง๋๋ ๋ธ๋์น์ด๋ค.
์ด ๋ธ๋์น๋ master ๋ธ๋์น์์ ๋ฐ๋ก ๋ง๋ค์ด์ ํ๋ก๋์
์์ ์๊ธด ์ด์๋ฅผ ๊ณ ์น๊ณ master ๋ธ๋์น๋ก ํฉ์ณ์ ๋ฐฐํฌํ ์ ์๋๋ก ํ๋ค.
release ๋ธ๋์น๋ dev ๋ธ๋์น์์ ์์ฑํ๋ค. dev ๋ธ๋์น์์ feature ๋ธ๋์น๋ค์ ๋ง๋ค์ด์ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ๊ฐ๋ฐํ๊ณ ํฉ์น๋ค. ๊ทธ ๋ค์์ dev ๋ธ๋์น์์ release ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ , ํ๋ก๋์ ์ ์ถ์ํ๊ธฐ ์ํด์ ํ์ํ ์ฝ๋๋ค๋ง ๋ง๋ถ์ด๋๋ก ํ๋ค. ๊ทธํ master ๋ธ๋์น์ ํฉ์น๋ค. ๋ํ dev ๋ธ๋์น์์๋ release ๋ธ๋์น๋ฅผ ํฉ์ณ์ ์ต์ ๋ฒ์ ์ผ๋ก ์ ์งํ๋ค.
์์ ๋ธ๋์น๋ฅผ ์ด์ฉํ ๊ณผ์ ๋ค์ ํ ๊ฐ์ ์ ์ฅ์์์ ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด๋ค. Git Fork Workflow๋ ์ ์ฅ์๋ฅผ fork(๋ณต์ ) ํด์ ํ์ ํ๋ ์์ ๊ณผ์ ์ ๋งํ๋ค.