๋ชจ๋ ํฌ์คํ
์ ๊ตฌ๋ฆ์๋ ๊ฐ์ข ์ค "Git์ผ๋ก ์์ํ๋ ํ์
๋ฐ ์คํ์์ค ํ๋ก์ ํธ" ์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ
์ถ์ฒ๋ ์๋์ ์ฃผ์๋ก "๋๋๋น"๋์ ์๋ฃ์
๋๋ค.
์์
์ ์ธ ์๋๊ฐ ์๋ ๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํด๋๋ ๋ชฉ์ ์ผ๋ก ํฌ์คํ
ํ ๊ฒ์
๋๋ค.
edu.goorm.io/learn/lecture/11528/git์ผ๋ก-์์ํ๋-ํ์
-๋ฐ-์คํ์์ค-ํ๋ก์ ํธ/info
# ๋ธ๋์น
๊น์ ๋์์ ์ฌ๋ฌ ๊ฐ๋ฐ์๋ค์ด ํ๋ก์ ํธ์์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ ์๋๋ก ๋ธ๋์น(Branch) ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์๋ก ๋ค๋ฅธ ๋ธ๋ํฐ๋ ์์
์ ํจ์ ์์ด์ ์๋ก์๊ฒ ์ํฅ์ ๋ฐ์ง ์๋๋ค๋ ์ ์์ ๋ง์ ๋๊ณ ์๋ก ๋ค๋ฅธ ๊ฐ๋ฐ ์์
์ ์ํํ ์ ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๊น์ ์ ์ฅ์๋ก ๋ง๋ค๋ฉด ์๋์ผ๋ก ๋ง์คํฐ(Master)๋ธ๋์น๊ฐ ์์ฑ ๋๋ค. ์ด ๋ธ๋์น๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์์ค์ ์์ ํ๋ ๋ฒ์ ์ ํฌํจํ๊ณ ์๋ค.
๋์๊ณผ์
ํ๋ก์ ํธ์์ ์ฃผ ๋ฒ์ ์ ๋ง์คํฐ ๋ธ๋์น๋ผ๊ณ ํ๋ค.(์๋ ์์ฑ๋จ)
ํน์ ์ง์ ์์ ๊ฐ๋ฐ์ ํด์ผ ํ๋ค๋ฉด Develop Branch๋ฅผ ๋ง๋ค๋ฉด ๋๋ค. ์ค๋ฅ ๋ฐ์ ์ ๋ฒ๊ทธ๋ฅผ ๊ณ ์น ๋๋ Bug Fix Branch๋ฅผ ์จ์ค๋ค.
๋ง์คํฐ ๋ธ๋์น๋ ํญ์ ์์ ํ ๋์ด ์์ด์ผ ํ๊ณ ์ธ์ ๋ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๋ชจ๋ ์์
์ ๋ง์คํฐ ๋ธ๋์น์์ ํ ์๊ฐ ์๋ค.
์ด๋ด ๊ฒฝ์ฐ ๋ณ๋ ฌ์์ผ๋ก ๋๋์ด ๊ฐ๊ธฐ ๊ธฐ๋ฅ์ ๋ง๊ฒ ๊ฐ๋ฐ์ ํ๋ ๊ฒ์ด๋ค.
์ฆ ๊ฐ ๋ธ๋์น๋ก ๊ฐ๋ฐ์ ํ์ฌ ๋ง์คํฐ ๋ธ๋์น์ ๋ณํฉ์ ์ํค๋ ๊ตฌ์กฐ์ธ ๊ฒ์ด๋ค.
๋ณํฉ์ ํ ๋๋ ํฉ์น๊ธฐ(Merge)๊ฐ ์ํ๋๋ค.
Merge๊ฐ ์ํ๋๊ธฐ ์ ๊น์ง๋ ์์ ์ ์ผ๋ก ๋ฐฐํฌ๊ฐ ์ด๋ฃจ์ด์ง๊ณ ์๋ค๊ฐ, ๋ชจ๋ ๊ธฐ๋ฅ์ด ํฉ์ณ์ง ์ดํ์ ๋ค์ ๋ฐฐํฌํ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์ ์์ ์ฑ์ด ๋งค์ฐ ๋ฐ์ด๋๊ฒ ๋๋ ๊ฒ์ด๋ค.
> ํตํฉ ๋ธ๋์น : ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์์ค์ ๋ธ๋์น๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ง์คํฐ(Master) ๋ธ๋์น๋ฅผ ์๋ฏธํ๋ค.
> ํ ํฝ ๋ธ๋์น : ํน์ ํ ๊ธฐ๋ฅ์ ์ํด ๋ง๋ค์ด์ง ๋ธ๋์น๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ง์คํฐ(Master) ๋ธ๋์น ์ด์ธ์ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ์๋ฏธํ๋ค.
# ๋ธ๋์น ์ค์ตํด๋ณด๊ธฐ
๋จผ์ git branch๋ผ๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ฃผ๋ฉด ํ์ฌ ๋ช ๊ฐ์ ๋ธ๋์น๊ฐ ์กด์ฌํ๋ ์ง ๋ณด์ฌ์ค๋ค.
์๋์ผ๋ก ์กด์ฌํ๋ Master๋ธ๋์น๋ง ์กด์ฌํ๋ค.
๋ธ๋์น๋ฅผ ํ๋ ์ถ๊ฐํด๋ณด์.
"git branch <branch name>" ์ ํด์ฃผ๋ฉด ํด๋น ๋ธ๋์น๊ฐ ์์ฑ๋๋ค.
ํ์ฌ ์์น๋ฅผ Master branch๊ฐ ์๋ ์๋ก ์์ฑํ ๋ธ๋์น๋ก ์ด๋ํ๊ณ ์ถ๋ค๋ฉด "checkout" ๋ช
๋ น์ด๋ฅผ ์จ์ฃผ๋ฉด ๋๋ค.
ํ์ฌ ๊ฐ๋ฅดํค๋ ๋ธ๋์น๊ฐ ๋ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด ์ํ์์ ์์ค์ฝ๋๋ฅผ ๋ณ๊ฒฝํด๋ณด๋๋ก ํ์. ๋ณ๊ฒฝํ ์์ค์ฝ๋๋ ์ด์ ์๊ฐ์ ๋ง๋ comtest.py ํ์ผ์ด๊ณ , ์๋์ ๊ฐ์ด ์์ค๋ฅผ ์ถ๊ฐํด์ฃผ์๋ค.
์ดํ git add์ git commit ์ผ๋ก ์ปค๋ฐ ์์ผ์ค๋ค.
๋ณ๊ฒฝ ํ commit log๋ฅผ ํ์ธํด๋ณด๋ฉด ์๋์ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.
ํ์ฌ ํค๋๊ฐ ์๋ก ๋ง๋ ๋ธ๋์น์ธ "develop"์ ๊ฐ๋ฅดํค๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
ํ์ง๋ง origin์ฆ ์๊ฒฉ์ง ์ฃผ์์์๋ master๋ฅผ ๊ฐ๋ฅดํค๊ณ ์๋ค. ๋ฐ์์ด ์๋ ๊ฒ์ด๋ค.
์ฆ, ํ์ฌ ๋ธ๋์น์์๋ง ์ ์ฉ์ด ๋๊ณ ๋ง์คํฐ ๋ธ๋์น์์๋ ๋ณ๊ฒฝ์ด ์ ์ฉ๋์ง ์์ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ develop๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ master๋ธ๋์น์ ํฉ์น๋ ค๋ฉด ์์์ ์ธ๊ธํ Merge๋ฅผ ์ํํ๋ฉด ๋๋ค.
์์ ๊ฐ์ด ๋ค์ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ๊ฐ๋ฅดํค๊ฒ ํ ํ merge๋ช
๋ น์ ํตํด ๋ ๋ธ๋์น๋ฅผ ๋ง์ถ์ด ์ฃผ๋ฉด ๋๋ค.
๋ค์ ๋ก๊ทธ๋ฅผ ํ์ธํด๋ณด์.
ํค๋๊ฐ ๋ง์คํฐ์ develop์ ๊ฐ๋ฅดํจ๋ค. ์ด๊ฒ์ ์์ ๋ ํจ์๋ฅผ ๋ฐ์ํ์๋ค๋ ๊ฒ์ด๋ค.
์๊ฒฉ์ง ์ ์ฅ์์๋ ์์ ๋ด์ญ์ ์ ์ฉํ๊ณ ์ถ์ผ๋ฉด git push ๋ช
๋ น์ ์
๋ ฅํด์ฃผ๋ฉด ๋๋ค.
์์ ๋ด์ญ์ด ์ ์ฉ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ชจ๋ ์์ ์ด ๋๋ ํ git branch๋ฅผ ํด๋ณด๋ฉด ์์ง develop๋ธ๋์น๊ฐ ๋จ์์๋ค. ๋ณํฉ์ด ๋๋์ ์ญํ ์ ๋คํ ๋ธ๋์น๋ ์ ๊ฑฐํด์ฃผ๋ฉด ๋๋ค.
git branch -d develop
์ ๊ฑฐ ํ ๋ธ๋์น ๋ฆฌ์คํธ๋ฅผ ํ์ธํด๋ณด๋ฉด ์ฒ์๊ณผ ๊ฐ์ด Master ํ๋๋ง ์กด์ฌํ๋ค.