Git์ ๋ํ ๋ณธ๋ฌธ์ ์ด์ ๊ธ๊ณผ ์ด์ด์ง๋๋ค!! ์ ๋ด์ฉ์ด ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!!
ํ์ ์ ์ํ Git-Flow ์ ๋ต [GIT]
ํ์ (Collaboration)์ ์ํ 'Git-Flow' ์ ๋ต ์ฐ๋ฆฌ๋ ๊น๊ณผ ๊นํ๋ธ๋ฅผ ์๊ฒฉ ์ ์ฅ์๋ก์์ ๊ธฐ๋ฅ, ๋์์ ๋ฒ์ ๊ด๋ฆฌ์ ๋ฐฑ์ , ๋์๊ฐ 'ํ์ '์ ์ํ ํด์์ ์์ ๊ธ๋ค์ ํตํด ์ ์ ์์๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ณธ๊ฒฉ์ ์ผ
jhklee-coder.tistory.com
Fork
Fork(๋ ์ค๋ค, ๊ฐ์ ธ์ค๋ค ๋ฑ) : " '๊ธฐ์กด์ ์๋ ํ๋ก์ ํธ๋ฅผ ๋ณธ์ธ์ ์ ์ฅ์์ ๋๊ฐ์ ํํ๋ก ๊ฐ์ ธ์ค๋ ๋์' ํน์ 'ํฌํฌ'ํด์ ๊ฐ์ธ ๊นํ ์ ์ฅ์๋ก ๋ณต์ฌํด์ค๋ ํ์" ์ ๋๋ก ์ดํดํ๋ฉด ๋ ๋ฏํ๋ค. ๊ฝค ๊ท๋ชจ๊ฐ ์๋ ํ๋ก์ ํธ์ด๊ฑฐ๋ ํน์ ๊ธฐ์กด์ ์ด๋ฏธ ์งํ ์ค์ด๋ ์ ๋ฌด์ ๊ฒฝ์ฐ, ์๋ก์ด ํ์์ด ์๋ค๊ณ ํด์ ์๋ก ์ ์ฅ์๋ฅผ ์์ฑํ๊ฑฐ๋ ํ์ง ์๋๋ค(์.. ๊ตณ์ด??). ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ํด fork๋ผ๋ ๊ธฐ๋ฅ์ด ์กด์ฌํ๋๋ฐ, ํน์ง์ ์ข ๋ ์ ๋ฆฌํ๋ฉด ์ด๋ ๋ค.
- ํ๋ก์ ํธ๋ฅผ ํต์งธ๋ก ์ธ๋ถ(๊ฐ์ธ ํน์ ์ฌ์ฉ์ ๋ ํฌ)๋ก ๋ณต์ ํด์ ๊ฐ๋ฐํ๋ ๋ฐฉ์.
- ๊ฐ๋ฐ์ ํด์ Main ๋ธ๋์น๋ก Merge๋ฅผ ๋ฐ๋ก ํ๋ ๊ฒ์ด X. Pull requests๋ก ์ ํ๋ก์ ํธ ๊ด๋ฆฌ์์๊ฒ ๊ฐ์ธ ๊ฐ๋ฐ์๊ฐ Merge ์์ฒญ์ ๋ณด๋ธ๋ค. ๊ทธ๋ฆฌ๊ณ , ๊ธฐ์กด์ ํ๋ก์ ํธ ๊ด๋ฆฌ์๊ฐ Pull request๋ ์ฝ๋์ ์ ์ ์ฑ์ ํ๋จํ ๋ค, ๊ทธ๋ ๊ทธ ๊ธฐ๋ฅ์ ํฉ์น๋ ๋ฐฉ์.
Add & Commit
1) Add(๋ํ๋ค) : git์ ํ์ฌ commit๋ ๋ฒ์ ๊ณผ ๋ค๋ฅด๊ฒ ๋ณ๊ฒฝ๋ ํ์ผ์ด ์์์ ์๋ ค์ฃผ๋ ๋์์ด๋ค. git add๊ฐ ์คํ๋๋ฉด git์ ์ด๋ฅผ ํ์ํ๊ธฐ ์ํด ๊ฐ์ง ํ์ผ๋ค์ ๋ณํ๊ฐ ์๊ธด๋ค.
2) Commit(๋งก๊ธฐ๋ค, ์ธ๋ํ๋ค) : git์ ๋ณ๊ฒฝ๋ ํ์ผ์ด ์์์ ๋ช ์ํ๋ ๋์์ด๋ค. commit์ ํ๋ฉด ๊ทธ ์ ๊น์ง addํ ํ์ผ๋ค์ด ํด๋น commit์ ๊ธฐ๋ก๋๋ค. add์ ๋ง์ฐฌ๊ฐ์ง๋ก git commit์ด ์คํ๋๋ฉด, git์ ์ด๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด ๊ฐ์ง ํ์ผ๋ค์ ๋ณํ๊ฐ ์๊ธด๋ค.
PR(Pull Request) ๊ณผ์
1) clone
github์ ์ ์ฅ์๋ฅผ ๊ฐ์ธ ๋ก์ปฌ ๋ ํฌ์งํ ๋ฆฌ๋ก 'clone(๋ณต์ )'ํ๋ค. *-b ์ต์ (git ๋ช ๋ น์ด)์ ์ฌ์ฉํ์ฌ ํด๋น ๋ธ๋์น๋ก ๋ณต์ ๋ฅผ ์ํํ๋ค.
(*GitKraken์ ์ฌ์ฉํ ๊ฒฝ์ฐ, GUI์ ๋ด๋ถ ๋ช ๋ น์ ํตํด ๊ฐ์ธ ๋ก์ปฌ ๋ ํฌ๋ฅผ ์์ฑํจ๊ณผ ๋์์ Github ์๊ฒฉ ์ ์ฅ์ ์์ฑ๋ ๊ฐ๋ฅํ๋ค.)
2) add
๊ฐ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ณ๊ฒฝ, ์ถ๊ฐ๋ ๋ด์ฉ์ ๋ก์ปฌ ๋ ํฌ๋ก ๋๊ธด๋ค. ์ด ๋ ์ฐ๋ฆฌ๋ ํน์ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ ๋ช ์ ์ ๋ ฅํด ์์ ํ ๋ด์ฉ๋ค ์ค ์ผ๋ถ๋ง ๋๊ธธ ์๋ ์๊ณ , *์ ์ฌ์ฉํด ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๋ชจ๋ ๋๊ธธ ์๋ ์๋ค. (๊ธฐ์ด ์ฌ์ฉ๋ฒ์ด๋ฏ๋ก, ํ๋๋ง ๋๊ฒจ๋ณด๋๋ก ํ์!)
> ๋ด๊ฐ ๋ง๋ค์๋ ๊ธฐ์กด์ ์ฝ๋๊ฐ ๋ก์ปฌ ๋ ํฌ์ ์ ์ฅ๋์ด ์๋ค. ์ฌ๊ธฐ์ ์๋ก์ด ์ฝ๋๋ฅผ ์ถ๊ฐํด๋ณด๋ฉด, ์๋ ๊ฒ ๋ก์ปฌ ๋ ํฌ์ ์๋ก์ด ํ์ผ์ด ์ ์ฅ๋๋ค.
> ์ด๋ GUI๋ฅผ ๋ณด๋ฉด, Unstaged๋ ํ์ผ์ ๋๊ณ ์์ง add๋๊ธฐ ์ง์ ์ ๋๊ธฐ์ํ๊ฐ ๋๋ค. ์ด ๋ณ๊ฒฝ์ฌํญ์ ์ด์ stage ํ๋ฉด, feature ๋ธ๋์น๋ก ์์ ํ ์ฝ๋๊ฐ 'Add'๋๊ณ , ๋ด ์๊ฒฉ ์ ์ฅ์๋ก commit๋๊ธฐ ์ง์ ์ ์ํ(Staged files)๋ก ๋ฐ๋๋ค.
3) commit
add๋ฅผ ํ ์ดํ์ commit ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ์์ค์ฝ๋์ ๋ณ๊ฒฝ, ์ถ๊ฐ์ฌํญ์ ๋ํ ์ ๋ณด๋ฅผ feature branch์ '์ปค๋ฐ'ํด์ผ ํ๋ค. ์ด ๋ (*-m ์ต์ )์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฉ์ธ์ง๋ก ๋จ๊ธธ ์ ์๋ค.
(*์ปค๋ฐ์ ์์ commit message๋ฅผ ์์ฑํ๋๋ฐ ์ด๋, "๋๋ ๋ฌด์จ ์์ ์ ํ์ผ๋ฉฐ, ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋์๋์ง"์ ๋ํด ๊ฐ๋จํ๊ฒ ๋ช ์ํด์ค์ผ ํ๋ค. -> ์์ฑ ์์์ issue ์์ฑ ๋ฐฉ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ง๋จ ๋ด ์ฝ์์ ๋ฐ๋ฅผ ๊ฒ!)
4) push
์ปค๋ฐ๋ ์ฝ๋๋ฅผ ์ ์ฅ๋ ์์ค์ฝ๋๋ฅผ ์๊ฒฉ์ ์ฅ์(github)์ ์ถ๊ฐํ๋ค๋ฉด, ์ด์ ์๊ฒฉ ์ ์ฅ์๋ก Push ํด์ผ ํ๋ค. Push๋ฅผ ํ ์ดํ์ 'PR(Pull Request)' ์ด๋ผ๋ ํ์๋ฅผ ํตํด ์์ฑํ๋ ์ฝ๋๋ค์ ๋ค๋ฅธ ์ฌ๋๊ณผ ๊ณต์ ํ๋ฉด์ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ๋ค.
> Push๋ฅผ ํ๊ณ ๋ด ๊นํ ์ ์ฅ์๋ฅผ ๊ฐ๋ณด๋ฉด, ์๋์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋จ๊ฒ ๋๋๋ฐ, ๋ค์ ๋จ๊ณ(Pull Request, Merge)์ ๋ํด์๋ ๋ค์ ๊ธ์์ ๋ค๋ฃจ๋๋ก ํ๊ฒ ๋ค!!
Reference)
์์ ์ถ์ฒ)
- Gitkraken ์ฌ์ฉ๋ฒ์ ๋ํ ์์์ ๋๋ค!! Git ๋ช ๋ น์ด๊ฐ ์์ด๋ ์ฌ์ฉ๊ฐ๋ฅํ Git ์ ๋ต์ด ๊ถ๊ธํ๋ค๋ฉด ์ฐธ๊ณ ํ์ธ์!!
https://www.youtube.com/watch?v=kIK1x7u3Ndk
์๋ฃ ์ถ์ฒ)
- Git-flow, Github-flow ์ ๋ต์ ๋ํ ๊ธฐ์ ๋ธ๋ก๊ทธ์ ๋๋ค. Git์ ๊ดํ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๊ณผ ํจ๊ป ์ค์ ๊ธฐ์ ์์ ์ฌ์ฉํ๋ ํ์ ์ ๋ต์ ๊ฐ์ฅ ์์ธํ๊ฒ, ์ค์ง์ ์ผ๋ก ๋ค๋ฃจ๊ณ ์์ด์.
์ด๋ฏธ์ง ์ถ์ฒ) "https://www.flaticon.com/kr/free-icons/github" ์ ์์: Xinh Studio - Flaticon
'๊ธฐํ(PM & PO) > ๐ Git & Github' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด๋ชจ์ง [Git/Github] (1) | 2024.02.11 |
---|---|
ํ์ ์ ์ํ Git-Flow ์ ๋ต [GIT] (0) | 2024.02.01 |
Git/GitHub [GIT] (2) | 2024.01.28 |
'GIT'์ด ๋ญ์ง? [GIT] (0) | 2024.01.27 |