branch๋? : ๋ธ๋์น๋ ๋ ๋ฆฝ์ ์ธ ์์ ์ ํ ์ ์๋ ๊ณต๊ฐ์ด๋ค.
โ branch๊ฐ ์ ํ์ํ๊ฐ?
ํ์ ์ ํ ๋ ๋๊ฐ์ ๊ธฐ๋ฅ์ ๋ค ํจ๊ป ์์ ํ์ง ์๋๋ค. ๊ฐ์ ์ด๋ค ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ์ง ์ ํด๋๊ณ , ์ถํ์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ๋์์ ๋ ํ๋๋ก ํฉ์ณ ํ๋ก์ ํธ๋ฅผ ์์ฑ์ํจ๋ค. ์ด๋, ๊ธฐ๋ณธ ๋ธ๋์น์์ ํจ๊ป ์์ ์ ํ๋ฉด ์ถฉ๋์ด ์ค๊ฑฐ๋ ๊ด๋ฆฌ์ ์์ด ์ด๋ ค์์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ์์ ํ๋ก์ ํธ ํ์ผ์ ์ ์ฅํ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ์์ฑํ๊ณ ํด๋น ๋ธ๋์น์ ์์ ํ์ผ์ ์ ์ฅํ๊ฒ ๋๋ค.
main ๋ธ๋์น๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ค์ํ ๋ธ๋์น๊ฐ ๋ป์ด์๋ ํํ๋ก, ๊ฐ๊ฐ์ ๋ธ๋์น์ ์ ์ฅ๋์ด ์๋ ์ฝ๋๋ค์ ์ถํ์ mergeํ์ฌ main๊ณผ ํฉ์ณ์ง๊ฒ ๋๋ค.
: ๊ธฐ๋ณธ ๋ธ๋์น๋ git ์ ์ฅ์๋ฅผ ์ด๊ธฐํํ ๋ ์๋์ผ๋ก ์์ฑ๋๋ค.
git์์๋ ๊ธฐ๋ณธ ๋ธ๋์น๋ master์ด๊ณ github์์๋ main
: HEAD๋ผ๋ ํฌ์ธํฐ๋ ํ์ฌ ์์ ์ค์ธ ๋ธ๋์น๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
git branch
โ ํ์ฌ ๋ธ๋์น ๋ชฉ๋ก๊ณผ ํ์ฌ ๋ธ๋์น ํ์ธ.
= ๋ธ๋์น ๋ชฉ๋ก๋ค์ด ๋ณด์ฌ์ง๊ณ ํ์ฌ ๋ธ๋์น์๋ *์ ์ด๋ก์ ๊ธ์จ๋ก ํํ๋๋ค.
git branch Second
โ ํ์ฌ ์์ ์์ Second๋ผ๋ ๋ธ๋์น ์์ฑ.
= ๋ง์ฝ main ๋ธ๋์น์ ์์นํด ์๋ ์ํ์์ branch๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด ํ์ฌ๊น์ง ์์
ํ main ๋ธ๋์น๋ค์ ํ์ผ๋ค์ ํจ๊ป ๋ค๊ณ ์์ second ๋ธ๋์น๊ฐ ์์ฑ๋๋ค.
git checkout Second
โ Second ๋ธ๋์น๋ก ์ด๋.
= HEAD ํฌ์ธํฐ๊ฐ main์์ Second๋ก ์ด๋ํ๋ค.
echo โhello worldโ >> first.txt
โ hello world๋ผ๋ ๋ด์ฉ์ ๋ด์ first.txt ํ์ผ ์์ฑ
git add first.txt
git commit -m โ์๋ก์ด ๋ธ๋์น์ ํ์ผ ์ถ๊ฐโ
git push -set -upstream origin Second
โ first ํ์ผ์ ์ปค๋ฐํ ํ์ Second ๋ธ๋์น์ push
git switch main
โ main ๋ธ๋์น๋ก ๋ณ๊ฒฝ
= HEAD ํฌ์ธํฐ๊ฐ Second์์ main์ผ๋ก ๋ณ๊ฒฝ
restore ์ด์ฉ
git restore filename
checkout ์ด์ฉ
git checkout - - filename
โ ํด๋น ํ์ผ ๋ด์ฉ์ด ์ต์ ์ปค๋ฐ ์ ์ผ๋ก ๋์๊ฐ๋๋ก ํ๋ค.
restore ์ด์ฉ
git restore - - staged filename
reset ์ด์ฉ
git reset HEAD filename
git branch -D branch๋ช
โ ๋ก์ปฌ ์ ์ฅ์์์์ ๋ธ๋์น ์ญ์ .
git push origin - - delete branch๋ช
โ ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ผ๊ฐ ์๋ ๋ธ๋์น ์ญ์ .
git reflog
โ ๋ชจ๋ ์ฐธ์กฐ ๋ชฉ๋ก์ ํ์ธํ ์ ์๋ ๋ช
๋ น์ด.
= ์ญ์ ํ ๋ธ๋์น๋ฅผ ์ด๋ค ์์ ์ผ๋ก ๋ณต๊ตฌํ ๊ฒ์ธ๊ฐ๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋๋ฐ ์ด๋ฅผ reflog๋ก ์กฐํํ ํ์ ์ปค๋ฐ ํด์๊ฐ์ ์ฐพ์์ ๊ฐ์ ธ์จ๋ค.
git checkout -d ์ญ์ ํ ๋ธ๋์น ๋ช
ํด์๊ฐ(ex. 34f6ed0)
โ git checkout์ผ๋ก ๋ณต๊ตฌ
git checkout master
โ ํฉ๋ณํ ๊ณต๊ฐ.
git merge Second
โ ํฉ๋ณํ ๋ธ๋์น.
git push origin master
โ push๊น์ง ํด์ค์ผ ์๊ฒฉ์ ์ฅ์์ ๋ฐ์์ด ๋๋ค.
โ push ํ ๋ ๋ค์ํ ์ด์ ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋๋ฐ, ์ด๋๋ github push error๋ฅผ ์ฐธ๊ณ ํ์ฌ ํด๊ฒฐํ๊ธฐ!