๊ฐ๋ฐ์๊ฐ ๋๋ ค๋ฉด git๊ณผ github๋ฅผ ์์์ผ ํ๋ค๋ ๊ฒ์ ์๋ ์์ด ๋ค์๋ค.
๋น์ ๊ณต์ ์
์ฅ์์ git๊ณผ github๋ ๊ฐ์ ๊ฑด๊ฐ? ๋ค๋ฅด๋ฉด ๋ญ๊ฐ ๋ค๋ฅธ๊ฑฐ์ง? ๋ผ๋ ์๊ฐ์ ํ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์๊ฐ๋ด์ ๊ณต๋ถํด์ผํ๋ ๊ฑด์ง๋ ๋ถ๋ช
ํํ๋ค. ์๊ทธ๋๋ ๋ฐฑ์ง์ํ๋ผ ๊ณต๋ถํ ๊ฒ ๋ง์๋ฐ...
์๋ก์ด ๊ฐ๋
์ด๋ผ ์์ฒญ ๋ฏ์ค๊ธฐ๋ ํ๋ค. CLI์์ ํผ์ณ์ง๋ ์๋ง์ log๋ค์ด๋...
๊ทธ๋๋ git, github๋ฅผ ๊ณต๋ถํด๋ณด๋! ๊ฐ๋ฐ์ ๊ณต๋ถ ์ด๊ธฐ์ ํ๋ ๊ฒ์ด ๋ง๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
git์ ๋ชฐ๋์ผ๋ฉด ๊ณต๋ถํ์ง ์์์ผ๋ฉด ๋์ค์ ์ ๋ง ํด๋งธ์ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ง ํธํ๋ค. push ํ์ ๋ ๋ก์ปฌ์์ ์ง์์ ธ๋ ์ด๋๊ฐ ๋์ ํ์ผ์ด ์ ์ฅ๋์ด ์๋ค๋ ์ฌ์ค์ด ์๋๊ฐ์ ์ค๋ค. ๋ ๋ด๊ฐ ๋ง๋ ์ฝ๋๋ค์ด ์ด๋๊ฐ์ ๊ธฐ๋ก๋์ด ๊ฐ๊ณ ์์๋ก ์
๋ฐ์ดํธ๋ฅผ ์์ ์์ฌ๋ก ํ ์ ์๋ค๋ ์ฌ์ค์ด ๊ธฐ๋ก๋ํ์ธ ๋์๊ฒ ์์ฃผ ํฅ๋ฏธ๋ก์ ๋ค. ๊ฐ์ธ์ ์ผ๋ก ๋
ธํธ ์ฑ์ ๋
ธ์
์ ์ฌ๋ํ๋๋ฐ ๋
ธ์
์ ๊ณต์ ํ๊ธฐ๊ฐ ์ ๋งคํ๋ค. ๊ณต์ ํ ์๋ ์๋๋ฐ ์ฉ ์ข์ง ์๋ค. ๋ฐ๋ฉด ๊ฐ๋ฐ์๋ผ๋ฉด github๋ ๋๊ตฌ๋ ์๊ณ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ข์ ๊ธฐ๋ก์๋จ์ธ ๊ฒ ๊ฐ๋ค.
๋ค๋ง git์ ๋ญ๊ฐ ๋ฑ ๋ด๋ ์ด๋ ต๋ค. ๊ทธ๋์ ์ ๊ทผ์ฑ์ด ๋์๋ฐ ์ง์ ์น๋ฉด์ ๊ณต๋ถํ๋๊น ์ด์ฐจํผ ์ฐ๋ ๋ช ๋ น์ด๋ค์ ์ ํด์ ธ ์์ด์ ๊ธ๋ฐฉ ์ตํ ์ ์์๋ค. branch๋ git flow ๊ฐ์ ํ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ข ์ด๋ ค์ ์ง๋ง.. ใ ใ
๊ฐ์ฅ ์ค์ํ ๊ฒ์ git, github ์ด ๋์ ๋ช
ํํ ๊ตฌ๋ถํ ์ ์๋ ๊ฒ์ด๋ค.
์ค์ ๋ก ์ ๋๋ก ์ค๋ช
ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค๊ณ ํ๋ค. ๊ฐ์ ๊ฑฐ๋ผ๋ฉด ๊ตณ์ด ์ ๋๋ ๋ถ๋ฅด๊ฒ ๋๊ฐ.
ํ์ผ ๋ณํ๋ฅผ ์๊ฐ์ ๋ฐ๋ผ ๊ธฐ๋กํ๋ค๊ฐ ๋์ค์ ํน์ ์์ ์ ๋ฒ์ ์ ๋ค์ ๊บผ๋ด์ฌ ์ ์๊ฒ ํด์ค.
* ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ?
์ฌ์ฉ์๊ฐ ๋ง์ง๋ง ํ์ผ์ ์ค๋
์ท์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋๋ผ ๊ทธ๋ฅ ์ ์ฅ์๋ฅผ ํ์คํ ๋ฆฌ์ ๋๋ถ์ด ์ ๋ถ ๋ณต์ ํ๋ค.
* ๊ฑฐ์ ๋ชจ๋ ๋ช
๋ น์ ๋ก์ปฌ์์ ์คํ
ํ์คํ ๋ฆฌ๋ฅผ ์กฐํํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋ด์ญ์ ๋น๊ตํ๊ณ ์ถ์ ๋๋ ๋ก์ปฌ์์ ์ฐพ๋๋ค. ๋ฐ๋ผ์ ์คํ๋ผ์ธ ์ํ์์๋ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊ฒ์ด๋ค. ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ๊ณ์ ํธ๋ํน ๋๊ณ ๋์ค์ push๋ก ์๊ฒฉ์ ์ฅ์์ ์ ์ฅํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
์ฝ๋๋ฅผ ์ฐ๋ค๋ณด๋ฉด ๋๋ฒ๊น
์ ํ๊ฑฐ๋ ์์ ํ๊ฑฐ๋ ์
๋ฐ์ดํธ ํด์ผํ๋ ์ผ๋ค์ด ์๊ธด๋ค. ์ด๋ด ๋ git์ ์ฌ์ฉํ๋ฉด ํจ์จ์ ์ผ๋ก ๋ชจ๋ ๊ณผ์ ์ ์ฒ๋ฆฌํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ํ์
์ ํ๊ฑฐ๋ ๊ฐ์ ์ฝ๋๋ฅผ ๋์์ ๊ฐ๋ฐํ ๋๋ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค.
cli์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ํ๋ ๋ค์ํ gui ์๋น์ค๋ ์กด์ฌํ๋ค. (i.e Kraken, github desktop, Source Tree ๋ฑ)
git์์ ์ค์ํ ํ์ผ๋ค์ remote ์ ์ฅ์์ธ github์ ์ ์ฅํ๊ณ ๋ฐฐํฌํ๊ณ ๊ธฐ๋กํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ค. ์คํ์์ค ํ๋ก์ ํธ๋ค์ด ์์ ๋กญ๊ฒ ๋ฐฐํฌํ ์ ์๋ ํ๊ฒฝ์ธ github๋ฅผ ๋ง์ด ์ผ๊ณ ์ ๋ช ํด์ก๋ค. ์ฌ์ฉ์ ์นํ์ ์ด๊ณ ๋ค์ํ๊ฒ ํ์ฉ๊ฐ๋ฅํด์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ํ์์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ค.
๋ด ์ปดํจํฐ์ธ local์์ ํ์ผ์ ์๊ฒฉ์ ์ฅ์์ธ remote repo๋ก ๋๊ธฐ๋ ๊ณผ์ ์ด๋ค.
์์ ํ ํ์ผ์ $ git add ํ๋ฉด ๋ณด๋ผ ์ค๋น๋ฅผ ํ๊ณ $ git commit์ ํ๋ฉด local repo์ ์ ์ฅ๋๋ค. ๋ง์ง๋ง์ผ๋ก $ git push๋ remote repo๋ก ๋๊ฒจ์ค๋ค.
๋น์ฐํ ๋ฐ๋๋ก $ git pull์ ํ๋ค๋ฉด ์๊ฒฉ์ ์ฅ์์ ์๋ ํ์ผ์ ๋๊ฒจ๋ฐ์ ์ ์๋ค.
$ git checkout์ commit, add๋ฅผ ์ทจ์ํ๋ ๋ช ๋ น์ด์ธ๋ฐ ๋ค์์ ๋ค๋ฃฐ ๊ฒ์ด๋ค.
Modified: ์์ ํ ํ์ผ์ ์์ง ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปค๋ฐํ์ง ์์ ์ํ / $ git add ์ ์ํ
Staged: ํ์ฌ ์์ ํ ํ์ผ์ ๊ณง ์ปค๋ฐํ ๊ฒ์ด๋ผ๊ณ ํ์ํ ์ํ / $ git add ํ ์ํ
Committed: ๋ฐ์ดํฐ๊ฐ ๋ก์ปฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ํ๊ฒ ์ ์ฅ๋จ์ ์๋ฏธ / $ git commit ํ ์ํ
์ฒ์ ๋ฐฐ์ฐ๋๋ผ๋ git์ cli์์ ๋ฐฐ์ฐ๋ ๊ฒ์ด ์ข๋ค.
์๋ํ๋ฉด...
- cli๋ก ๋ฐฐ์ฐ๋ฉด gui๋ ๊ป์ด๋ค.
- cli๊ฐ ํจ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๋ค.
- cli๊ฐ ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์๋ค.
- gui ๋ณด๋ค ์ด์์ง๋ ์์ง๋ง ๊ฐ์ง๊ฐ ๋๋ค..!๐
git init: git์ ์์ํจ. => .git์ด๋ผ๋ directory๊ฐ ์์ฑ๋จ(.git์์๋ git๋ฒ์ ์ ๋ณด์ remote ์ฃผ์๊ฐ ์์)
git add: git์ด ๊ด๋ฆฌํ ๋์์ ํ์ผ ๋ฑ๋กํ๊ธฐ
git commit: ๋ฐ์ดํฐ๊ฐ ๋ก์ปฌ์ ์ฅ์์ ์ ์ฅ๋จ
git push: ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์๊ฒฉ์ ์ฅ์์ ์ ๋ฌ
git status: ํ์ฌ ์ํํ์ธ. ํ์ผ์ด ๋ณ๊ฒฝ๋๊ฑฐ๋, addํ ๊ฒ์ด ์๊ฑฐ๋, commitํ ๊ฒ์ด ์๋์ง ์๋ ค์ค.
์ด์ git์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ์ ์์๋ณด์๋ค. ์ฌ์ค ์ด๋ ๊ฒ ์ค๋ช ์ผ๋ก๋ ๊ธ์ ์ฝ๋ ๊ฒ ๋ณด๋ค ์ง์ ํ์ดํ ํ๋ฉด์ ์ตํ๋๊ฒ ๊ฐ์ฅ ์ข๋ค. "๋ฐฑ๋ฌธ์ด ๋ถ์ด์ผํ!"
๋ค์์ ๋ ์ค์ฉ์ ์ด ๋ด์ฉ์ ์์ฑํด๋ณผ ์๊ฐ์ด๋ค.
์ด์ ๊ฐ๋ฐ์์ง๋ง์์ด ์ ๋ฆฌํด๋ณธ git์ ๋ฟ์๊ธฐ ๋ง๋ฌด๋ฆฌํ๋ค..!!๐
(์ง์ ํด๋ณด๋ฉด์ ๋ด๊ฐ ๋ฟ์
์ง๊ธด ํ๋ค.. ใ
ใ
)