๊ฐ๋ฐ์์๊ฒ ๊ผญ ํ์ํ ๋ฅ๋ ฅ ์ค ํ๋๋ ํ์
๋ฅ๋ ฅ ์ด๋ค.
ํ์
๋ฅ๋ ฅ์ ๋ถ์ผ์ ์ง๋ฌด๋ฅผ ๋ง๋ก ํ๊ณ ์ด๋์๋ ์ค์์๋๋ ๋ฅ๋ ฅ์ธ ๋งํผ ์ฌ๋ฌ ํ์
ํด์ ์๊ณ ์๋ ๊ฒ์ด ๋์์ด ๋ ๊ฒ์ด๋ค.
๋ํ, ์ฌ๋ฌ ํค์๋๋ฅผ ๋ค์ํ๊ฒ ๊ฒ์ํด๋ณด๋ ์๋๋ฅผ ๊ฐ์ง๋ฉฐ ์ํ๋ ์๋ฃ๋ฅผ ์ ์ฐพ๋ ๋ฅ๋ ฅ์ ๊ฐ์ถ๋ ๊ฒ ๋ํ ๋งค์ฐ ์ค์ํ๋ค.
๋ฒ์ ๊ด๋ฆฌ ๋?
ํน์ ์์ ์ ์งํ ์ํฉ์ ์ ์ฅํด๋๊ณ , ์ธ์ ๋ค์ ๋์์ค๋๋ผ๋ ๊ทธ ์์ ์ผ๋ก๋ถํฐ ๋ค์ ์์ํ ์ ์๋๋ก ๊ด๋ฆฌํ๋๊ฒ
ํํ๋ค ์คํ ์ด์ง๋ฅผ ํ๋์ฉ ๊นจ๋ ๊ฒ์์ ๊ฒฝ์ฐ๊ฐ ๋ฒ์ ๊ด๋ฆฌ์ ๋ํ์ ์ธ ์์ด๋ค.
๊ฐ๋ฐ์ ์งํํ๋ฉฐ ๋ค๋ฅธ ์ฌ๋๊ณผ ํ์
ํ๋ฉฐ ์ฝ๋๊ฐ ์ ์ ๊ธธ์ด์ง์ ๋ฐ๋ผ ์ด๋ฌํ ๋ฒ์ ๊ด๋ฆฌ์ ํ์์ฑ์ด ์ปค์ง๋ค.
์์ค ์ฝ๋์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ์์คํ
์ค ํ๋๊ฐ Git ๊ณผ GitHub ์ด๋ค.
Git ์ด๋?
๊ฐ๋ฐ์ ์งํํ๋ฉฐ ์์ฑํ๋ ์์ค์ฝ๋๊ฐ ์ ๋ฐ์ดํธ ๋๋ ๋ฒ์ ์ ๊ธฐ๋กํด๋๊ณ ๊ด๋ฆฌ ํ ์ ์๋ ์์ค์ฝ๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
GitHub ๋?
Git์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ฅผ ํธ์คํ ํ๊ณ , ์๊ฐ๊ณผ ๊ณต๊ฐ์ ์ ์ฝ์์ด ํ์ ํ ์ ์๋ ์จ๋ผ์ธ ์๋น์ค
์ฆ, ๋ก์ปฌ(Local) ์์ ์์ ํ ๋ด์ฉ์ Git์ด ์ ์ฅํ๊ณ , ์จ๋ผ์ธ ์์ ๊ณต๊ฐ์ธ GitHub ์ ์ฌ๋ ค ์๊ฒฉ์ผ๋ก๋ ์์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ฒ์ด๋ค.
1. ํฐ๋ฏธ๋ ์์
Ctrl+Alt+T
๋ฅผ ๋๋ฌ ํฐ๋ฏธ๋์ ์คํ์ํจ๋ค.
2. ์ฐ๋ถํฌ์ Git ์ค์น
์๋์ ๋ช
๋ น์ด๋ก git ์ค์น ์ฌ๋ถ๋ฅผ ์ ์ ์๋ค.
$ git --version
์ค์น๋์ด์์ง ์๋ค๋ ๋ด์ฉ์ด ์ถ๋ ฅ๋์๋ค๋ฉด ์๋์ ๋ช ๋ น์ด๋ก git์ ์ค์นํ ์ ์๋ค.
$ sudo apt-get install git
3. ๋ก์ปฌ Git์ Github ๊ณ์ ๋ฑ๋ก
๋ก์ปฌ์ github ๊ณ์ ์ ์ฐ๊ฒฐํด์ผ ์๊ฒฉ์ผ๋ก git ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
$ git config --global user.email "my-email@gmail.com"
$ git config --global user.name "my-username"
4. ๋ก์ปฌ ์ ์ฅ์ ์์ฑ
$ mkdir project # ํ๋ก์ ํธ ์ด๋ฆ
$ cd project
mkdir : make directory ์ ์ฝ์๋ก, ์๋ก์ด ํด๋๋ฅผ ์์ฑ
cd : change directory ์ ์ฝ์๋ก, ํ์ฌ ๋๋ ํ ๋ฆฌ ์์น ๋ณ๊ฒฝ
์ํ๋ ํด๋๋ก ์ฎ๊ฒจ๊ฐ์ ์ด ๋๋ ํ ๋ฆฌ๋ฅผ git์ผ๋ก ๊ด๋ฆฌํ์.
$ cd project
$ git init
init
์ initialization ์ ์ฝ์๋ก, ์ง๊ธ๋ถํฐ project
๋๋ ํ ๋ฆฌ์์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ณํ๋ฅผ ๊ธฐ๋กํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
5. Git์ผ๋ก ํ์ผ ๋ฒ์ ๊ด๋ฆฌ
README.md ๋ผ๋ ํ์ผ์ ๋ง๋ค์ด github ์ ์ฌ๋ฆด ์์ ์ด๋ค. README.md ํ์ผ์ ๋งํฌ๋ค์ด ํ์์ ํ์ฅ์๋ก ์ฃผ๋ก github ์์ ์๋ก์ด ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์์๋ ํ๋ก์ ํธ์ ์๊ฐ๋ฅผ ์ ๋ ๊ณณ์ด๋ค.
โ README.md ์์ฑ
$ echo "# first-repository" >> README.md
""์์ ๋ด์ฉ์ README.md ํ์ผ ๋ด๋ถ์ ์ ํ ๋ด์ฉ์ด๋ค.
Git์ด ๊ธฐ๋กํ๊ณ ์๋ ๋ณํ๋ ๋ค์ ๋ช ๋ น์ด๋ก ํ์ธ ํ ์ ์๋ค.
$ git status
โก ์์ฑํ git์ ๋ฒ์ ๊ด๋ฆฌํ ํ์ผ ์ถ๊ฐ (add)
$ git add README.md
โข commit (ํ์ )
$ git commit -m "new readme file"
-m ์ ๋ฉ์ธ์ง๋ฅผ ์ ๋๋ค๋ ์ต์ ์ด๋ฉฐ "" ์์ ๋ด์ฉ์ ๋ณ๊ฒฝ ๋ด์ฉ์ด๋ค.
add ์ commit ์ ์ฐจ์ด
Git ์ Repository ๊ตฌ์กฐ๋ ํฌ๊ฒ ์ธ๊ฐ์ง๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์์ ํด๋(Working directory) > ์ธ๋ฑ์ค(Staging Area) > ์ ์ฅ์(Head-Repository)
add ๋ ๋ณํ๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํ ์ค๋น ๋จ๊ณ์ ํด๋นํ๋ค.
commit ์ ์ต์ข ์ ์ผ๋ก ์ธ๋ฑ์ค์ ์๋ ํ์ผ๋ค์ ์ ์ฅ์๋ก ์ด๋ํด ๋ณํ ๊ธฐ๋ก์ ํ์ ํ๋ค.
6. GitHub ์ ์ ๋ก๋
โ ๋ ํฌ์งํ ๋ฆฌ ์ฐ๊ฒฐ
$ git remote add origin https://github.com/(username)/(repository name)
โก GitHub์ push (์
๋ก๋)
ํ์ฌ ๋ก์ปฌ์ ์๋ ๋ฒ์ ๊ธฐ๋ก๊ณผ ๋ชจ๋ ํ์ผ๋ค์ origin
, ์ฆ, ์๊ฒฉ ์ ์ฅ์์ master ๋ธ๋์น๋ก push
ํ๋ค๋ ๋ช
๋ น์ด๋ ์๋๊ณผ ๊ฐ๋ค.
$ git push origin master
์ ๋ช ๋ น์ด์์ ์๋ฌ๊ฐ ๋๋ค๋ฉด git push origin main ์ผ๋ก ์๋~
push๋ฅผ ํ ๋๋ง๋ค ๋งค๋ฒ ๋ก๊ทธ์ธ์ ํ์ง ์์ผ๋ ค๋ฉด git config credential.helper store
๋ช
๋ น์ด๋ฅผ ํ ๋ฒ๋ง ์คํํ๋ฉด ๋๋ค.
๋ธ๋์น (Branch) ๋?
์ฌ๋ฌ ์์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์งํํ๋ ค๊ณ ํ ๋ ํ์ํ๋ค. ๊ฐ๊ฐ์ ๋ธ๋์น๋ ๋ค๋ฅธ ๋ธ๋์น์ ์ํฅ์ ๋ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์์ ์ ๋์์ ์งํํ ์ ์๋ค.
7. GitHub ์ ์๋ ํ์ผ ๊ฐ์ ธ์ค๊ธฐ
$ git clone https://github.com/(username)/(repository name)
clone
๋ช
๋ น์ด๋ฅผ ํตํด ์๊ฒฉ์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
8. ๋ก์ปฌ์ ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ๊ณผ ๊ฐ๊ฒ ์ ๋ฐ์ดํธ
๋ค๋ฅธ ์ฌ๋์ด clone ์ ํตํด ๋ด๋ ค๋ฐ๊ณ ์๋ก์ด ๋ฒ์ ์ ๋ง๋ค์ด github ์ ์ฌ๋ ธ์๋ ์ด์ ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ฌ๋์ ์๋ก์ด ๋ฒ์ ์ ์์ ์ ๋ก์ปฌ์ ์
๋ฐ์ดํธ ํ ํ์๊ฐ ์๋ค. pull
์ ํตํด ์ด ๊ณผ์ ์ ์ํ ํ ์ ์๋ค.
$ git pull origin master