local repository : ๋ด pc์์ ๊ด๋ฆฌํ๋ ๊น(git)์ ์ฅ์
remote repository : local์ ์ฅ์๋ฅผ ์ ๋ก๋ํ๋๊ณณ ex) ๊นํ๋ธ(github)
clone ํด๋ก : ๋ช ๋ น์ด๋ก ๊ธฐ์กด ์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ก์ปฌ์ ๋ฐ์์ ์์
working directory : ์์
์ด ์ผ์ด๋๋ ํด๋
staging area : ์์
ํด๋์์ ๋ณ๊ฒฝ ๋ด์ฉ์ ๊ธฐ๋กํ๋๊ณณ (git์ ์ฅ์์์ commitํ๊ธฐ ์ ์ ์ฌ๋ ค๋๋ ๊ณต๊ฐ)
#status
์ปค๋ฐ๋ ํ์ผ & ์คํ
์ด์ง์ ์๋ ํ์ผ : tracked
๊ทธ ์ธ untracked
$ git status
#add
์์
ํด๋์์ ์์
ํ ๋ณ๊ฒฝ์ ์คํ
์ด์ง์ ์ฌ๋ฆด๋(์ปค๋ฐํ๊ธฐ ์ง์ ์) ์ฌ์ฉํ๋ ๋ช
๋ น์ด
addํ ํ์ผ์ด tracked ์ํ๊ฐ ๋จ(git ๊ด๋ฆฌํ๋ ๋์์ด ๋จ)
#commit
git add ๋ช
๋ น์ด๋ก ์คํ
์ด์ง์ ์ถ๊ฐํ ์์ ํ์ผ์ git ์ ์ฅ์์ ์ ์ฅ ์คํ
์ด์ง์ ์ฌ๋ ค๋์ง ์์ (untracked)ํ์ผ์ ์ปค๋ฐ๋์ง ์์
$ git commit -m "์ปค๋ฐ ๋ฉ์ธ์ง" ex)ํ๋ก ํธ์๋ ๋ฉ์ธํ์ด์ง ui๋ณ๊ฒฝ
#push
commitํ ํ์ผ์ ์๊ฒฉ์ ์ฅ์์ ์ฌ๋ฆฌ๋ ๋ช
๋ น์ด
git push <์๊ฒฉ ์ ์ฅ์ ์ด๋กฌ><๋ธ๋์น ์ด๋ฆ>
$ git push origin master
#fetch
๋ก์ปฌ์๋ ์์ง๋ง ์๊ฒฉ ์ ์ฅ์์ ์ฌ๋ผ๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๊ฐ์ ธ์ด(์
๋ฐ์ดํธ)
git fetch <์๊ฒฉ ์ ์ฅ์ ์ด๋ฆ>
$ git fetch origin
#pull (ํจ์นfetch+๋จธ์งmerge)
์๊ฒฉ์ ์ฅ์์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์๋์ผ๋ก ํ์ฌ ์์
ํ๋ ๋ก์ปฌ๋ธ๋์น์ merge
pull์ ์์๋ก ํด์ผํ๋๋ฐ ์ถ๊ทผํด์ ํ๋ฒ, ์ ์ฌ์๊ฐ ์ดํ์ ํ๋ฒ ํด๊ทผ์ ์ ํ๋ฒํ๊ณ commit
merge : ๋ธ๋ฐ์น ๋ณํฉ
checkout : ๋ธ๋ฐ์น์ ํ