branch strategy - connect-foundation/2019-07 GitHub Wiki
branch strategy
github flow๋ฅผ base๋ก ํ๋ก์ ํธ์ ์ ํฉํ๊ฒ ์์ ํจ.
๋ชจ๋ ๊ท์น์ ์๋ก๋ฅผ ๋ฐฐ๋ คํ๊ณ ์ดํดํ๊ธฐ ์ํด ์กด์ฌํ๋ค!
๊ธฐ๋ณธ
tools
gitKraken & Sourcetree
๊ฐ branch ๋ฐ commit์ ์ํ๋ฅผ ์๊ฐํ ํ๊ธฐ ์ํด ํ์์ "GitKraken", ํน์ "Sourcetree"๋ฅผ ์ฌ์ฉํ๋ค.
git graph
vsCode์ฉ ํ์ฅ ํ๋ก๊ทธ๋จ์ธ "git graph"๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ์งํฅํ๋ค.
our git-flow
remote ์ ์ฅ์์ branch ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค.
- master
- develop
local ์ ์ฅ์์ branch ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค.
- develop
- feature/XXX
remote - master
LTS ๋ฒ์ ์ ์ ์ฅํ๋ branch.
cloud์ ๋ฐฐํฌํ๋ ์ฝ๋์ด๋ค.
master branch ๊ฐ ๊ฐฑ์ ๋ ๊ฒฝ์ฐ ๋ฐฐํฌ cloud ์๋ฒ๋ ๊ฐฑ์ ํ๋ค.
๋งค์ฃผ ๋ชฉ์์ผ develop branch์์ merge ํ๋ค.
master branch์ ๋ด์ฉ์ด ์ ๋ฐ์ดํธ ๋๋ ๊ฒฝ์ฐ git tag๋ฅผ ์ด์ฉํ๋ค.
remote - develop
ํ๋ฃจ ํน์ ์ดํ์ ํ๋ฒ ๊ฐ์ local์ develop branch๋ค์์ ๋ ์์จ PR์ mergeํด ๊ฐฑ์ ํ๋ค.
PR๋ผ๋ฆฌ ์ถฉ๋์ด ์ฆ์ ์ ์์ผ๋ฏ๋ก ์ฝ๋๋ฆฌ๋ทฐ์ ์์ ์ ์ฝ๋์ conflict ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์๋์ง ๊ผผ๊ผผํ ๊ฒํ ํ๋ค.
local - develop
remote์ develop branch๊ฐ merge๋์ด ๊ฐฑ์ ๋ ๊ฒฝ์ฐ pull๋ก ์ต์ ์ํ๋ก ์ ๋ฐ์ดํธ ํ๋ค.
feature branch์ ์ถฉ๋์ด ์ฆ์ ์ ์๋ค.
local - feature
๊ฐ์ ๊ฐ๋ฐ์ค์ธ ๊ธฐ๋ฅ์ ๋ํ๋ด๋ branch์ด๋ค.
๋ชจ๋ feature branch๋ ์ต์ ์ํ์ develop branch์์ ํ์๋์ด์ผ ํ๋ค.
branch์ ์ด๋ฆ์ "feature/๊ธฐ๋ฅ๋ช "์ผ๋ก ๊ตฌ์ฑํ ์ ์๋๋ก ํ๋ค.
our git-flow ์๋๋ฆฌ์ค
ํ๋ก์ ํธ ์์
ํ๋ก์ ํธ ์ด๊ธฐ ๊ตฌ์ฑ์ด ์๋ฃ๋ remote-master branch์์ remote-develop branch๋ฅผ ์์ฑํ๋ค.
๊ฐ ํ์์ remote ์ ์ฅ์์์, develop branch๋ง --single-branch ์ต์ ์ผ๋ก cloneํ๋ค.
์ผ์ผ ์์ ๊ฐ๋ฐ
๊ฐ์์ local-develop branch์์ ๊ฐ๋ฐํ feature branch๋ฅผ ์์ฑํ๋ค.
feature branch์์ ์์ ํ, ์๋ฃ๋์์ ์ ๋ค์๊ณผ ๊ฐ์ ์์๋ฅผ ๋ฐ๋ฅธ๋ค.
- ์์ local์ develop-branch๋ฅผ pullํด ์ต์ ์ผ๋ก ์ ์งํ๋ค.
- local-develop์ local-feature์ mergeํ๋ค.
- local-develop์์ remote-develop์ผ๋ก PR์ ๋ณด๋ธ๋ค. local-feature์์ ๋ฐ๋ก ์ธ๋ถ์ ์ธ branch๋ฅผ ์์ฑํด ์์ ํ ์ ์๋ค. ๋ค๋ง local-develop์ mergeํ๊ธฐ ์ branch๋ฅผ ์ ๋ถ ์ ๋ฆฌํ๋๋ก ํ๋ค.
PR merge
remote-develop์ merge ๊ถํ์ ๊ทธ ์ฃผ์ ํ์ฅ์ด ๊ฐ๋๋ค.
์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ์งํํ PR๋ง mergeํ ์ ์๋๋ก ํ๋ค.
๊ฐ ํ์์ conflict๊ฐ ๋ฐ์ํ์ง ์๋๋ก ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ๋ค.
์ถฉ๋์ด ๋ฌ์ ๊ฒฝ์ฐ, ์ถฉ๋์ด ๋ ์ธ์๋ผ๋ฆฌ ๋ชจ์ฌ ์ถฉ๋ ๋ถ๋ถ์ ๊ฐ์ ํ๋ค.
๊ณตํต์ ์ผ๋ก ์ฌ์ฉ ๋ฐ ์์ ํ๋ ํ์ผ์ ๊ฒฝ์ฐ๋ PR์ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ ๋ฆฌ๊ณ , mergeํ ์ ์๋ค.
๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ฉฐ ์ถฉ๋์ด ๋ ์ ์์ผ๋ฏ๋ก ์ฝ๋์ ๋ชจ๋ํ๋ฅผ ํตํด ์ถฉ๋์ ์๋ฐฉํ๋ ์ ๋ต์ ์ฌ์ฉํ๋ค.