์ค๋ต ๊น ๐ช - ๊ธฐ์ดํธ #4: ๊น ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ GitHub์ ์ฐ๋ํ๊ธฐ
by its_TIMIGit ๋ธ๋์น๋ ๋ ๋ฆฝ์ ์ธ ์์ ์ ์งํํ๊ณ ํ์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์ด๋ค. ์ด๋ฒ ๊ธ์์๋ ๋ก์ปฌ Git์์ ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ GitHub๋ก ํธ์ํ์ฌ ํ์ฉํ๋ ๊ณผ์ ์ ์ค๋ช ํ๋ค.
1. ๋ธ๋์น๋ ๋ฌด์์ธ๊ฐ?
๋ธ๋์น๋ ํน์ ์์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ ์ ์๋ ๊ณต๊ฐ์ ์ ๊ณตํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ํ์ฉ๋๋ค:
โข ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ถ๋ฆฌ: ๋ฉ์ธ ๋ธ๋์น์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ ์๋ค.
โข ํ์ ์ฉ์ด์ฑ: ํ์๋ค๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ํ ํ ๋ณํฉํ์ฌ ํจ์จ์ ์ผ๋ก ํ์ ํ ์ ์๋ค.
โข ๋ณ๊ฒฝ ์ด๋ ฅ ๊ด๋ฆฌ: ๋ธ๋์น๋ฅผ ํตํด ๋ณ๊ฒฝ ์ด๋ ฅ์ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ ์ ์๋ค.
2. ๋ก์ปฌ์์ ๋ธ๋์น ์์ฑ ๋ฐ ์ด๋ํ๊ธฐ
Git์์๋ branch, checkout, switch ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ธ๋์น๋ฅผ ๊ด๋ฆฌํ๋ค.
switch ๋ช ๋ น์ด๋ฅผ ํ์ฉํ๋ฉด ๋ ์ง๊ด์ ์ผ๋ก ๋ธ๋์น๋ฅผ ์ ํํ๊ณ ์์ฑํ ์ ์๋ค.
๋ธ๋์น ์์ฑ ๋ฐ ์ด๋
1. ์ ๋ธ๋์น ์์ฑ ๋ฐ ์ ํ
switch ๋ช ๋ น์ด๋ก ์ ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ์ ํํ ์ ์๋ค:
git switch -c <๋ธ๋์น ์ด๋ฆ>
์:
git switch -c feature/login
2. ๊ธฐ์กด ๋ธ๋์น๋ก ์ ํ
์ด๋ฏธ ์กด์ฌํ๋ ๋ธ๋์น๋ก ์ ํํ ๋๋ switch ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค:
git switch <๋ธ๋์น ์ด๋ฆ>
์:
git switch main
๊ธฐ์กด ๋ฐฉ์(checkout) ์ฌ์ฉ
ํ์ง๋ง? ๋๋ถ๋ถ ์๊ณ ์์ checkout ๋ช ๋ น์ด๋ ์ฌ์ ํ ์ฌ์ฉํ ์ ์๋ค:
โข ๋ธ๋์น ์์ฑ ๋ฐ ์ด๋:
git checkout -b <๋ธ๋์น ์ด๋ฆ>
โข ๊ธฐ์กด ๋ธ๋์น๋ก ์ด๋:
git checkout <๋ธ๋์น ์ด๋ฆ>
3. ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์(GitHub)์ ํธ์ํ๊ธฐ
๋ก์ปฌ์์ ์์ฑํ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ก๋ํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ฅธ๋ค:
1. ์ ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ํธ์
git push ๋ช ๋ น์ด๋ก ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ก๋ํ๋ค:
git push -u origin <๋ธ๋์น ์ด๋ฆ>
์:
git push -u origin feature/login
2. ์๊ฒฉ ๋ธ๋์น ์ถ์ ์ค์
-u ์ต์ ์ ๋ก์ปฌ ๋ธ๋์น๋ฅผ ์๊ฒฉ ๋ธ๋์น์ ์ฐ๊ฒฐ(์ถ์ )ํ๋ค. ์ด๋ฅผ ํตํด ์ดํ์๋ git push๋ง์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋ก๋ํ ์ ์๋ค.
4. ๋ธ๋์น ๋ณํฉ ๋ฐ ์ญ์
1. ๋ธ๋์น ๋ณํฉ
๋ฉ์ธ ๋ธ๋์น์ ์์ ๋ธ๋์น๋ฅผ ๋ณํฉํ๋ ค๋ฉด ์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค:
git switch main git merge <๋ธ๋์น ์ด๋ฆ>
์:
git switch main git merge feature/login
2. ๋ก์ปฌ ๋ธ๋์น ์ญ์
๋ณํฉ์ด ์๋ฃ๋ ๋ธ๋์น๋ ์๋ ๋ช ๋ น์ด๋ก ์ญ์ ํ ์ ์๋ค:
git branch -d <๋ธ๋์น ์ด๋ฆ>
3. ์๊ฒฉ ๋ธ๋์น ์ญ์
์๊ฒฉ ์ ์ฅ์์์๋ ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค:
git push origin --delete <๋ธ๋์น ์ด๋ฆ>
์ ๋ฆฌ
Git ๋ธ๋์น๋ ์์ ํ๊ฒฝ์ ๋ถ๋ฆฌํ๊ณ , ํจ์จ์ ์ธ ํ์ ๊ณผ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํต์ฌ์ ์ธ ๋๊ตฌ์ด๋ค.
์ด๋ฒ ๊ธ์์๋ ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ์๊ฒฉ ์ ์ฅ์์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. ํนํ, ์๋กญ๊ฒ ๋์ ๋ switch ๋ช ๋ น์ด๋ฅผ ํ์ฉํ๋ฉด ๋ธ๋์น๋ฅผ ๋ ์ง๊ด์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
๋ค์ ๊ธ์์๋ Git์ ์์ ์์ญ(Working Directory, Staging Area, Repository)์ ๋ํด ๋ค๋ฃฐ ์์ ์ด๋ค. (๊ธฐ์ ํธ์์)
์ถ๊ฐ ํ
โข switch์ checkout์ ์ฐจ์ด์
โข switch๋ ๋ธ๋์น ์์ฑ ๋ฐ ์ด๋์ ์ด์ ์ ๋ง์ถ ๋ช ๋ น์ด์ด๋ค.
โข checkout์ ๋ธ๋์น ์ ํ ์ธ์๋ ํ์ผ ๋ณต์ ๊ธฐ๋ฅ์ ํฌํจํ๋ฉฐ, ๋ค๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
โข ์ต์ Git ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ switch ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํ๋ค.
๋ธ๋ก๊ทธ์ ์ ๋ณด
Dev_TIMI
its_TIMI