ํ์ (Collaboration)์ ์ํ 'Git-Flow' ์ ๋ต
์ฐ๋ฆฌ๋ ๊น๊ณผ ๊นํ๋ธ๋ฅผ ์๊ฒฉ ์ ์ฅ์๋ก์์ ๊ธฐ๋ฅ, ๋์์ ๋ฒ์ ๊ด๋ฆฌ์ ๋ฐฑ์ , ๋์๊ฐ 'ํ์ '์ ์ํ ํด์์ ์์ ๊ธ๋ค์ ํตํด ์ ์ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ณธ๊ฒฉ์ ์ผ๋ก ์ด ํ์ ์ ์ํ ํจ๊ณผ์ ์ธ Git-flow ์ ๋ต์ ํ ๋ฒ ์ดํด๋ณด์. ์ด ์ ๋ต์ ๋ค๋ฅธ ๋ง๋ก๋ Branch ์ ๋ต์ด๋ผ๊ณ ๋ ํ๋๋ฐ, ์ฌ๋ฌ ๋ช ์ ๊ฐ๋ฐ์๊ฐ 1๊ฐ์ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๋ ํ๊ฒฝ์์ ํจ๊ณผ์ ์ผ๋ก ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋์จ ๊ฐ๋ ์ด๋ค.
์ด๋ฒ์ GitKraken์ด๋ผ๋ GUI๋ฅผ ํ์ฉํด GIT ๋ช ๋ น์ด๋ฅผ ํ์ฉํ ์ ๋ก๋๋ณด๋ค ์ฝ๊ณ ๊ฐ๋จํ Git-flow ์ ๋ต์ ์์ฑํด๋ณด๋ ค ํ๋ค. (์๋์ ํต์ฌ ํค์๋๋ค๊ณผ ํจ๊ป!)
- Branch
- Push (+commit)
- Pull Request (+review)
- Merge
Git-Flow?
'Branch'
Git-flow์ ๋ํด ์๊ธฐ ์ํด์ ์ฐ์ Branch๋ผ๋ ๊ฐ๋ ์ ๋ํด ์์์ผ ํ๋ค. Branch๋ ์ฐ๋ฆฌ๋๋ผ ๋ง๋ก '๋๋ญ๊ฐ์ง' ํน์ '๋ถ๊ธฐ'๋ผ๊ณ ํ๋๋ฐ, ์๋ ๊ทธ๋ฆผ์ด ๊ทธ ๊ฐ๋ ์ ๊ฐ์ฅ ์ ๋ํ๋ธ ๋ฏํด ๊ฐ์ ธ์๋ดค๋ค.
# Main branch
์ฐ์ ํ๋ก์ ํธ์ ๊ฐ์ฅ ํต์ฌ ์ค๊ธฐ์ธ 'Main(Master) branch'๋ถํฐ ์์๋ณด์. ์ด ๋ฉ์ธ ๋ธ๋์น๋ ํ๋ก์ ํธ์ ์์๊ณผ ๋์ ๋จ์์๋ ๊ฐ์ฅ ํต์ฌ ๋ธ๋์น๋ก, ์ฝ๊ฒ ๋๋ฌด์ ์ค์ฌ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค. ์ด ๋ฉ์ธ ๋ธ๋์น ๋ด๋ถ์๋ Master์ Develop ๋ธ๋์น๊ฐ ์๋๋ฐ, ๋ ๋ธ๋์น ๋ชจ๋ Main์ด๋ผ๊ณ ์ดํดํด๋ ๋ฌด๊ดํ๋ค(Github-flow).
- Master : ์ ํ์ผ๋ก '์ถ์(launch)'ํ๊ธฐ ์ํ ๋ธ๋์น(ํน์ ์ ํ์ผ๋ก ์ถ์ํ ์ ์๋ ๋ธ๋์น)๋ก, ์ต์ด ๋ถ๊ธฐ์ ์ด์ ๋์์ ์ต์ข ํฉ๋ณ์ ์ด๋ค.
- Develop : ๋ฉ์ธ ๋ธ๋์น ์ค์์ '๊ฐ๋ฐ(develop)'์ ์ํ ๋ธ๋์น๋ก, ํด๋น ๋ธ๋์น์์ feature์ release ๋ธ๋์น๊ฐ ๋ถ๊ธฐ๋๊ณ ๋ณํฉ๋๋ค.
# Sub branch
๋ค์์ ์ ํ์ด ์ถ์๋๊ณ ์์ ๋จ์ ๋ฐ๋ผ ๊ณ์ํด์ ์๋ก ์๊ฒจ๋๊ธฐ๋ ํ๊ณ , ์ฌ๋ผ์ง๊ธฐ๋ ํ๋ 'Sub branch'๊ฐ ์๋ค. ์ด ์๋ธ ๋ธ๋์น๋ ํฐ ํ๋ก์ ํธ(๊ธฐ๋ฅ) ์ค๊ฐ ์ค๊ฐ ์ถ๊ฐ๋๊ณ , ์์ ๋จ์ ๋ฐ๋ผ ์ง์์ ์ผ๋ก ์์ฑ๋๋ ์ผ์ข ์ ๋๋ญ๊ฐ์ง, ๋ถ๊ธฐ์ ์ด๋ค. ๊ฐ๋จํ๊ฒ Main branch์์ ๋ถ๊ธฐ๋์ด ๊ฐ๋ณ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ณ ์๋ฃ๋๋ฉด ๋ค์ Main branch๋ก ํฉ๋ณ๋๋ฉด์ ์ฌ๋ผ์ง๋ ์ด Sub ๋ธ๋์น๋ค์ ์์๋ณด์.
- feature : develop ๋ธ๋์น(= Main branch)์์ ๋ถ๊ธฐ๋์ด '๊ฐ๋ณ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ'ํ๋ ๋ธ๋์น์ด๋ค.
- release : ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์๋ฃ๋์ด ์ถ์ ๋ฒ์ ์ ์ค๋นํ๋ ๋ธ๋์น์ด๋ค. feature์ ๋์ผํ ๊ธฐ๋ฅ์ ํ์ง๋ง, ์ฃผ์์ด๋ผ๋์ง ํ์ผ์ ๋ค์ด๋ฐ์ผ๋ฉด์ ๋์น ๋ถ๋ถ(.gitignore, readme)๋ฑ์ ์ ๋ฆฌํ๋ ์์ ์ ๋ด๋นํ๋ค.
- hotfix : ์ถ์ ๋ฒ์ ์์ ๋ฐ์ํ ๋ฒ๊ทธ๋ฅผ (๊ธด๊ธํ๊ฒ) ์์ ํ๋ ๋ธ๋์น๋ก, Develop ๋ธ๋์น์์ ๋ถ๊ธฐ๋์ง ์๊ณ Master ๋ธ๋์น์์ ๋ถ๊ธฐ๋๋ค.
'GUI' (GitKraken)
์ต๊ทผ ๋์ค๋ Git client (GUI)๋ ์ Git-flow ์ ๋ต์ ๋๋ถ๋ถ ์ง์ํ๋ค. ๊น์์ ํ์ํ ์ฌ๋ฌ ๋ช ๋ น์ด๋ฅผ ๋ฒํผ์ผ๋ก ๋์ฒดํด์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์๊ฒฉ์ ์ฅ์๋ก ์ฎ๊ฒจ์ฃผ๋ ์ญํ ์ ํ๋ค. ๊ทธ๋์ GitKraken ๊ณผ ๊ฐ์ GUI ํด๋ค์ ์์๋๋ฉด ํธํ๋ค.
๊ทธ๋ ๋ค๋ฉด "Merge๋ ๋ ๋ญ๊ณ , Pull-Request๋ ๋ญ๋ฐ?"์ ๋ํ ๋ด์ฉ์ ๋ค์ ๊ธ๋ถํฐ...
ํด๋น ๊ธ์ GIT์ ๋ค๋ฃฌ ์ด์ ๊ธ๋ค์ ๋ค์ ๋ฒ์ ์์ ๋ง์๋๋ฆฝ๋๋ค. ์ดํด๊ฐ ๋์ง ์๋๋ค๋ฉด ์ด์ ๊ธ๋ค์ ์ฐธ๊ณ ํด์ฃผ์ธ์~!!
'๊ธฐํ(PM & PO) > ๐ Git & Github' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
'Git ์ฉ์ด' ๋ฐ๋ก์๊ธฐ [Git] (0) | 2024.02.16 |
---|---|
์ด๋ชจ์ง [Git/Github] (1) | 2024.02.11 |
Git/GitHub [GIT] (2) | 2024.01.28 |
'GIT'์ด ๋ญ์ง? [GIT] (0) | 2024.01.27 |