0. Git
๋ญ๊ฐ๋ฅผ ๋ง๋ค๊ณ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด, ์ปดํจํฐ์ ํน์ ํด๋์ ์์ ๋ฌผ๋ค์ ๋ฃ์ด๋๊ฒ ๋๋ค. Git์ ์ด ํด๋ ์์ ์๊ฐ์ฌํ์ด ๊ฐ๋ฅํ ํํ์ฐ์ฃผ๋ค์ ๋ง๋๋ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ Github๋ ์ด Git์ ๊ณต์ ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ํด๋ผ์ฐ๋์ด๋ค.
์๊ฐ ์ฌํ
์๊ฐ ์ฌํ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฑด ๋ด๊ฐ ์์ตํ๊ธฐ ์ด๋ ค์ด ์ค์๋ฅผ ํ์ ๋, ํน์ ์ ์ด๋ ๋ญ๊ฐ ๋ฐ๋์๋์ง ํท๊ฐ๋ฆด ๋ ์ธ์ ๋ ํด๋ ๋ด ์ํ๋ฅผ ๊ณผ๊ฑฐ๋ก ๋๋ฆด ์ ์๋ค๋ ๊ฒ์ด๋ค. ์์ ๋ชจ๋ ํ์ผ์ ์ ์ฅ๋ ์ํ๋ฅผ ์๊น๋ก, ์๊ทธ์ ๋ก, ํน์ ๋งจ ์ด๊ธฐ๋ก ๋๋ฆด ์ ์๊ณ ํน๋ณํ ์ด๋ค ํ์ํ ๊ฒ๋ง ์ฑ๊ฒจ์ ๊ฐ์ ธ์ฌ ์๋ ์๋ค.
ํํ ์ฐ์ฃผ
๋ง์ฝ ํ์ฌ ์ฝ๋์์ ์๋ํด๋ณด๊ณ ์ถ์ ๊ฒ์ด ์๊ฑฐ๋ ๋ณ๊ฒฝํด๋ณด๊ณ ์ถ์ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์ฝ๋์ ํํ์ฐ์ฃผ๋ฅผ ๋ง๋ค์ด ์๋๋ฅผ ํด๋ณด๋ค๊ฐ ๋ง์์ ๋ค๋ฉด ๋ค์ ํฉ์น ์๋ ์๋ค.
1. Git ์ฌ์ฉ๋ฒ
Git์ ์ฌ์ฉํ๋ ๋ฒ์ CLI(Command line Interface)๋ก ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ ๋ฐฉ๋ฒ, Source Tree์ ๊ฐ์ด GUI(Graphical User Interface)๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด์๋ค. CLI๋ ๋ฐ๋ก ์ค์นํด์ค ํ์๋ ์๊ณ ๋ค์ 3๊ฐ์ง๊ฐ ์ค์น๋์๋์ง๋ฅผ ํ์ธํ์.
CLI๋ก Git ์ฌ์ฉํด๋ณด๊ธฐ
git ์ ์ฅ์ ์์ฑ
git init // git ์ ์ฅ์ ์์ฑ
git config --global user.name "(๋ด์ด๋ฆ)" // ์ด๋ฆ ๋ฑ๋ก
git config --global user.email "(๋ด ๋ฉ์ผ์ฃผ์)" // ์ด๋ฉ์ผ ๋ฑ๋ก
์์ ์ ๋ง์น๋ฉด .git ํ์ผ์ด ์จ๊นํ์ผ๋ก ์์ฑ๋๋ค. ์ด ํ์ผ์ ๊ด๋ฆฌ์ ํ์ํ ์ ๋ณด๊ฐ ๊ธฐ๋ก๋๋ ๊ฒ์ด๋ฏ๋ก ์ญ์ ํ ๋ ์ด ํ์ผ์ ์ง์๋ฒ๋ฆฌ๋ฉด ๋๋ค.
ํ์ฌ ์์ ์ ์ ์ฅ
git status // ํ์ฌ git์ ์ํ ํ์ธ
git add -A // ํด๋์ ๋ชจ๋ ๊ฒ์ ํ์์บก์ ์์ ๋ด๊ฒ ๋ค(stage ํ๊ฒ ๋ค)
git commit -m "ํ์์บก์์ ๋ํ ์ค๋ช
" // ๋์ค์ ๊บผ๋ผ ๋๋ฅผ ๋๋นํด ์ค๋ช
์ ๋ฌ๊ณ , ํ์์บก์์ ๋ฌป๊ฒ ๋ค
git log // git์ ํ์์บก์๋ค์ ํ์ธ
add๋ก ํ์์บก์ ์์ ํ์ผ์ ๋ด๋๋ค. commit๋ก ํ์์บก์์ ๋ฌป๋๋ค. ๋ค์ ๋งํ๋ฉด, add๋ก git์ด ์ถ์ ํ ์ ์๋๋ก stage์ ํ์ผ๋ค์ ์ฌ๋ฆฌ๊ณ , commit์ผ๋ก ํ์ฌ ํด๋ ์ํ๋ฅผ ์ฌ์ง์ฐ์ด ๋ฒ์ ์ ๋ง๋๋ ๊ฒ์ด๋ค. ์์ธํ ์ฌํญ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ !
๊ณผ๊ฑฐ๋ก ๋์๊ฐ๊ธฐ
git log // ํด๋น ํ์์บก์์ ๋ฒํธ ํ์ธ
git reset "์ผ๋ จ๋ฒํธ" --hard // ์ด ํ์์บก์ ์ดํ์ ๋ณ๊ฒฝ์ ๋ค์ ๋ชจ๋ ์ญ์
git revert "์ผ๋ จ๋ฒํธ" // ์ด ํ์์บก์์ ๋ณ๊ฒฝ์ ๋ค์ ์ทจ์ํ ํ์์บก์์ ์๋ก ๋ฌป๋๋ค
reset์ ํด๋น ํ์์บก์๋ก ๋์๊ฐ๊ณ ์ด ํ์ ์์ ๋ค์ ๋ชจ๋ ์ทจ์ํ๋ ๊ฒ์ด๊ณ , revert๋ ํด๋น ์์ ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ๋ค์ ์ทจ์ํ ์บก์์ ์๋ก ๋ฌป๋ ๊ฒ์ด๋ค. reset์ ํ ๋ฒ ํ๋ฉด ๋์๊ฐ ์ ์์ผ๋ ์ ์คํ ํ๋๋ก ํ์.
branch ์์ฑ
git branch "branch ์ด๋ฆ" // ๊ธฐ์กด branch "master"์์ ์๋ก์ด ํํ์ฐ์ฃผ ์์ฑ
git checkout "branch ์ด๋ฆ" // ํด๋น branch ํํ์ฐ์ฃผ๋ก ์ด๋
git merge "branch ์ด๋ฆ" // ํ์ฌ ์๋ ์ฐ์ฃผ์๋ค๊ฐ ํด๋น์ด๋ฆ์ ๊ฐ์ง ํํ์ฐ์ฃผ์ ๋ณ๊ฒฝ์ ๋ค์ ๊ฐ์ ธ์ ํฉ์นจ
git log --graph --all --decorate // ํํ์ฐ์ฃผ์์์ ์์
๋ด์ญ์ ๋ณด์ฌ์ค
๋ฌผ๋ก ์ข ๋ ์ต์ํด์ ธ์ผ๊ฒ ์ง๋ง, ์ฃผ์์ ์ฝ์ด๋ณด๋ฉด ์ ๋ง ํธ๋ฆฌํ ๊ธฐ๋ฅ์ด ์๋ ์ ์๋ค! ํ์ง๋ง ๋ง์ฝ ๋ค๋ฅธ ์ฐ์ฃผ์์ ํน์ ๋ถ๋ถ์ ๋ค๋ฅด๊ฒ ์์ ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? conflict๋ฅผ ํด๊ฒฐํ๋ผ๋ ๋ฉ์ธ์ง๊ฐ ๋ฌ๋ค. ๋ ์ค ํ ์ชฝ์ ์ง์์ฃผ๊ณ add ๋ฐ commit์ ํด์ฃผ์! ์ฌ๋ฌ branch์์ ์์ ํ๋ค๋ฉด ๊ฐ์ ํ์ผ์ ์์ ํ์ง ์๋๋ก ์กฐ์ฌํ๋๋ก ํ์.
rebase ํ๊ธฐ
git rebase "branch ์ด๋ฆ" // merge์ฒ๋ผ ๊ฐ์ง๋ฅผ ๊ธฐ๋ฅ์ ๋ค์ ํฉ์น๋๊ฒ ์๋๋ผ, ๊ฐ์ง๋ฅผ ๋ผ๋ค ๊ธฐ๋ฅ์ ์ด์ด๋ถ์
git branch -D "branch ์ด๋ฆ" // ๋ค ์ด branch๋ฅผ ์ญ์
์ ๋ด์ฉ์ '์ํํ ์ฝ๋ฉ์ฌ์ '์ ๋ณด๊ณ ์ ๋ฆฌ ๋ฐ ์ถ๊ฐํ ๊ฒ์ ๋๋ค.
'๐ป > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git] Git-Flow, ์์คํธ๋ฆฌ ์ฐ๋ ๋ฐ ์ฌ์ฉ (0) | 2021.09.07 |
---|---|
[์ฐธ๊ณ ] Polyglot? (0) | 2021.07.06 |
[Git] Forkํ Repository๋ฅผ ์๋ณธ์ผ๋ก ์ ๋ฐ์ดํธ (0) | 2021.04.15 |
[Git] ๋ฆฌํฌ๋ช ์ถ์ฒ ๊ท์น (0) | 2021.04.13 |
[Git] ์ปค๋ฐ ๋ฉ์ธ์ง ๋ณ๊ฒฝ, ์์ฑ ์๋ น (0) | 2021.02.04 |