๊ธฐ์กด main ๋ธ๋์น์์์ ์์ ์ ์ ์งํ๊ณ , ์๋กญ๊ฒ ๋ง๋ ๋ธ๋์น์์ ์์ ๋กญ๊ฒ ์ฝ๋๋ฅผ ์ถ๊ฐ ๋ฐ ์ญ์ ํ ์ ์๋ค.
# ๋ธ๋์น ๋ชฉ๋ก
git branch
# ํ์ฌ ๋ธ๋์น์ ๋ชจ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ
git log
# -b ๊น๋ฐ. ํน์ ๋ถ๊ธฐ๊ฐ ์ฒดํฌ์์๋๊ณ ์ ์ฅ์์ ์๋ ๋ชจ๋ ๋ถ๊ธฐ๋ฅผ ๊ฐ์ ธ์ด
git clone -b <branch> <repository>
git switch
switch
: ์๋ก์ด ๋ธ๋์น๋ก Git์ด ๋ฐ๋ผ๋ณด๋ ๊ณณ. HEAD๋ฅผ ๋ณ๊ฒฝํ๋ ์์
.
-c
: create๋ผ๋ ์๋ฏธ. ๋ธ๋์น๋ฅผ ์์ฑ.
# feature๋ผ๋ ๋ธ๋์น๋ฅผ ์๋ก ์์ฑํ๋ ๊ฒฝ์ฐ, -c๋ฅผ ๋ถ์ธ๋ค.
git switch -c feature
# checkout์ด๋ผ๋ ๋ช
๋ น์ด๋ ์ฌ์ฉํ ์ ์๋ค.
git checkout -b feature
# ๊ธฐ์กด์ ์๋ main ๋ธ๋์น๋ก HEAD๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด, -c๋ฅผ ๋ถ์ด์ง ์๋๋ค.
git switch main
git checkout main
git merge
# ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์งํ๋์์ต๋๋ค.
git commit -m "๊ธฐ๋ฅ1์ ์ธ๋ถ ๊ธฐ๋ฅ1"
git commit -m "๊ธฐ๋ฅ1์ ์ธ๋ถ ๊ธฐ๋ฅ2"
git commit -m "๊ธฐ๋ฅ1 ๊ฐ๋ฐ ์๋ฃ"
# ๋จธ์ง๋ฅผ ์ํด main ๋ธ๋์น๋ก ์ ํ
git switch main
# main ๋ธ๋์น๋ก feat/todo ๋ธ๋์น๋ฅผ ๋ณํฉ
git merge feat/todo
But, ์ค์ ํ๋ก์ ํธ ๊ฐ๋ฐ ์์๋ ๋ก์ปฌ์์ ํฉ์ง์ง ๋ง๊ณ , pull request ๊ธฐ๋ฅ์ ์ด์ฉํ์ฌ ๋ณ๊ฒฝ ๋ด์ญ์ ์ถฉ๋ถํ ํ์ธํ๊ณ ๋ ๋ค์์ ๋จธ์งํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
# ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ์งํ๋์์ต๋๋ค.
git commit -m "๊ธฐ๋ฅ1์ ์ธ๋ถ ๊ธฐ๋ฅ1"
git commit -m "๊ธฐ๋ฅ1์ ์ธ๋ถ ๊ธฐ๋ฅ2"
git commit -m "๊ธฐ๋ฅ1 ๊ฐ๋ฐ ์๋ฃ"
# GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ํธ์
git push origin feat/todo
# GitHub์์ Pull Request
git branch -d
๋จธ์ง๋ feature ๋ธ๋์น๋ ์ด๋ฏธ dev ๋ธ๋์น์ ๊ธฐ๋ก์ด ์๋ฒฝํ๊ฒ ๋จ์์๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ๋จ๊ฒจ๋ ์ด์ ๊ฐ ์์ด ์ญ์ ๋ฅผ ๊ถ์ฅํ๋ค. ์๊ฒฉ ๋ฆฌํฌ์งํ ๋ฆฌ์์ pull request๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋จธ์ง๋๋ฉด, ํด๋น ๋ธ๋์น๋ฅผ ์ญ์ ํ๋ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ฝ๊ฒ ์ญ์ ํ ์ ์๋ค.
# ํฐ๋ฏธ๋์์ ์ญ์
git branch -d <๋ธ๋์น๋ช
>
# Git์ ๋ธ๋์น๊ฐ ํฉ์ณ์ง์ง ์์ผ๋ฉด ์ญ์ ํ์ง ๋ชปํ๋๋ก ์ค์ ์ด ๋์ด์๋ค.
# ๋ค ๋ง๋ค์ง ๋ชปํ ๊ธฐ๋ฅ์ ๊ธฐ๋ก์ ์ญ์ ํ๊ณ ์ถ์ ๋, -D ์ต์
์ ์ฐ๋ฉด ์ญ์ ํ ์ ์๋ค.
git branch -D feat/todo
mergeํ๋ ๋ฐฉ๋ฒ / branch ์ญ์