KR_IT_Web_Git - somaz94/DevOps-Engineer GitHub Wiki
์ธํฐ๋ท์ ๋ฐ์ ์ ํตํด ๋ฑ์ฅํ ์น1(Web1.0), ์น2(Web2.0), ์น3(Web3.0)์ ๊ฐ๊ธฐ ๋ค๋ฅธ ํน์ฑ๊ณผ ๊ธฐ์ ์ ๋ํํ๋ค. ์ด๋ค์ ๋ฐ์ ๊ณผ์ ์ ์ธํฐ๋ท์ ์ฌ์ฉ ๋ฐฉ์๊ณผ ์ธํฐ๋ท ๊ธฐ์ ์ ๋ณํ๋ฅผ ๋ฐ์ ํ๋ค.
Web 1.0์ ์ธํฐ๋ท์ ์ด๊ธฐ ํํ๋ก, ์ฃผ๋ก 1990๋ ๋์ ํด๋นํ๋ค. ์น 1.0์ ์ฌ๋๋ค์ด ์ ๋ณด๋ฅผ ๋ ์ ์ฐพ์ ์ ์๋๋ก ์ค๊ณ๋์๋ค. ์ด ์น ๋ฒ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ์ฌ์ฉ์๋ฅผ ์ํ ๊ฒ ์ด์๋ค.
์ค๋๋ ์ธํฐ๋ท์์ ์ฆ๊ธฐ๋ ํ์ ํ์, ์๊ฐ์ ์์, ์ปจํธ๋กค ๋ฐ ์ํธ ์์ฉ ๊ธฐ๋ฅ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ์ฝ๊ธฐ ์ ์ฉ ์น(the read-only Web)์ด๋ผ๊ณ ๋ ํ๋ค.
Web 2.0์ ์ธํฐ๋ท์ ์ฌํ์ ๋จ๊ณ๋ก, 2000๋ ๋ ์ด๋ฐ๋ถํฐ ๋์คํ๋๊ธฐ ์์ํ๋ค.
์ ์ ๋์ด๋๋ ์ฒญ์ค์ ์ํด ํจ์ฌ ๋ ๋ง์ ์ฝํ ์ธ ๋ฅผ ๋ง๋๋ ๋ง์ ์ฌ๋๋ค๋ก ๊ตฌ์ฑ๋๋ค. ์ฐธ์ฌ์ ๊ธฐ์ฌ์ ์ด์ ์ ๋ง์ท๋ค.
์ค๋๋ ์ฐธ์ฌํ ์์ ์น(participative social Web)์ด๋ผ๊ณ ๋ ํ๋ค.
์น3๋ ์ธํฐ๋ท์ ์ต์ ๋จ๊ณ๋ก, ์์ง ์์ ํ ์ ์๋์ง ์์์ง๋ง, ๋ถ์ฐํ ๋คํธ์ํฌ์ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ค์ํ, ๊ฐ๋ฐฉ์ฑ, ๋ณด๋ค ๋ฐ์ด๋ ์ฌ์ฉ์ ์ ํธ๋ฆฌํฐ๋ผ๋ ํต์ฌ ์์ด๋์ด๋ฅผ ๋ฐํ์ผ๋ก ๊ตฌ์ถ๋์๋ค.
Web 1.0์ ์ฝ๊ธฐ ์ ์ฉ ์น(the read-only Web)์ด๊ณ , Web 2.0์ ์ฐธ์ฌํ ์์ ์น(participative social Web)์ด๋ฉฐ, Web 3.0์ ์ฝ๊ณ , ์ฐ๊ณ , ์คํํ๋ ์น(read, write, execute Web) ์ด๋ค.
์ฒ์์ Web 3.0์ Semantic Web์ด๋ผ๊ณ ๋ถ๋ ์ผ๋ฉฐ ์ธ๊ณต ์ง๋ฅ๊ณผ ๊ธฐ๊ณ ํ์ต์ ์ฌ์ฉํ์ฌ ๊ธ๋ก๋ฒ ๋๋(global brain) ์ญํ ์ ํ๊ณ ์ฝํ ์ธ ๋ฅผ ๊ฐ๋ ์ , ๋งฅ๋ฝ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์ง๋ฅ์ ์ด๊ณ ์์จ์ ์ด๋ฉฐ ๊ฐ๋ฐฉ์ ์ธ ์ธํฐ๋ท์ ๊ตฌ์ํ๋ค.
Git์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์์ค ์ฝ๋ ๊ด๋ฆฌ๋ฅผ ์ํด ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ค. ์ด ์์คํ ์ ํตํด ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ์๋ก ๋ฐฉํด ๋ฐ์ง ์๊ณ ๋์์ ํ๋์ ํ๋ก์ ํธ์์ ์์ ํ ์ ์๋ค. Git์ ํ์ผ ๋ณ๊ฒฝ์ฌํญ์ ์ถ์ ํ๊ณ ์ฌ๋ฌ ๊ธฐ์ฌ์๋ค ๊ฐ์ ํ์ ์ ์กฐ์จํ๋ค. ๋ธ๋์น ์์ฑ, ๋ณํฉ, ๋๋๋ฆฌ๊ธฐ ๋ฑ์ ๊ธฐ๋ฅ์ ํตํฉํ์ฌ ํ๋ก์ ํธ์ ๋ค์ํ ๋ฒ์ ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ฒด๊ณ์ ์ผ๋ก ์ ์งํ๋ ๋ฐ ๋์์ ์ค๋ค.
-
๋ถ์ฐ ์ํคํ ์ฒ:
- ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ์ ์ฅ์์ ๊ทธ ์ด๋ ฅ์ ์์ ํ ๋ณต์ฌ๋ณธ์ ๊ฐ๊ณ ์์ด, ์คํ๋ผ์ธ ์์ ๋ฐ ์ค๋ณต์ฑ์ ์ง์ํ๋ค.
-
๋ธ๋์น ๋ฐ ๋ณํฉ:
- ์๋ก์ด ๊ธฐ๋ฅ์ ์คํํ๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ธฐ ์ํด ๋ธ๋์น๋ฅผ ์ฝ๊ฒ ์์ฑํ๊ณ ๋ณํฉํ ์ ์๋ค.
-
์คํ ์ด์ง ์์ญ(Staging Area):
- ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅ์ ์ด๋ ฅ์ ์ปค๋ฐํ๊ธฐ ์ ์ ๋จผ์ ์คํ ์ด์งํ๋ ๋ ํนํ ๊ฐ๋ ์ด๋ค.
-
ํจ์จ์ฑ:
- Git์ ์ฑ๋ฅ์ ์ต์ ํ๋์ด ์์ผ๋ฉฐ ํฐ ํ๋ก์ ํธ๋ ๋ฅ์ํ๊ฒ ์ฒ๋ฆฌํ๋ค.
-
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ:
- ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ฒดํฌ์ฌ(checksum)์ ํตํด ์ถ์ ๋ฐ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค.
-
์ํน ๋๋ ํ ๋ฆฌ(Working Directory):
- ํ์ฌ ์์ ์ค์ธ ํ์ผ๋ค์ด ์๋ ๋๋ ํ ๋ฆฌ์ด๋ค.
-
์คํ ์ด์ง ์์ญ(Staging Area):
- ์ปค๋ฐํ๊ธฐ ์ ์ ๋ณ๊ฒฝ์ฌํญ์ ์์๋ก ๋ชจ์๋๋ ์์ญ์ด๋ค.
-
๋ฆฌํฌ์งํ ๋ฆฌ(Repository):
- ํ๋ก์ ํธ์ ๋ชจ๋ ๋ฒ์ ๊ณผ ์ด๋ ฅ์ด ์ ์ฅ๋๋ ๊ณณ์ด๋ค.
-
์ปค๋ฐ(Commit):
- ์คํ ์ด์ง ์์ญ์ ๋ณ๊ฒฝ์ฌํญ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๊ตฌ์ ์ผ๋ก ๊ธฐ๋กํ๋ ๊ฒ์ด๋ค.
-
๋ธ๋์น(Branch):
- ์์ ์ ๋ถ๋ฆฌํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ํ ์๋จ์ด๋ค.
-
๋ณํฉ(Merge):
- ๋ ๊ฐ ์ด์์ ๋ธ๋์น๋ฅผ ํ๋๋ก ํตํฉํ๋ ๊ณผ์ ์ด๋ค.
-
Git:
- ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ผ๋ก, ์์ค ์ฝ๋์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๊ด๋ฆฌํ๋ค.
-
GitHub:
- Git์ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ํธ์คํ ํ๋ ์น ์๋น์ค์ด๋ค.
- ํ์ , ์ด์ ์ถ์ , ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฑ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
# ์ Git ์ ์ฅ์ ์ด๊ธฐํ
git init
# ์ ์ฅ์ ์ํ ํ์ธ
git status
# ํ์ผ์ ์คํ
์ด์ง ์์ญ์ ์ถ๊ฐ
git add <ํ์ผ๋ช
>
git add . # ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ ์ถ๊ฐ
# ์ปค๋ฐ ๋ฉ์์ง์ ํจ๊ป ๋ณ๊ฒฝ์ฌํญ ์ปค๋ฐ
git commit -m "์ปค๋ฐ ๋ฉ์์ง"
# ์๊ฒฉ ์ ์ฅ์์ ๋ณ๊ฒฝ์ฌํญ ํธ์
git push
# ์ปค๋ฐ ์ด๋ ฅ ํ์ธ
git log
# ์คํ
์ด์ง๋ ๋ณ๊ฒฝ์ฌํญ๊ณผ ๋ง์ง๋ง ์ปค๋ฐ ๋น๊ต
git diff --staged
# ์ ํ๊ทธ ์์ฑ
git tag <ํ๊ทธ๋ช
>
# ๋ก์ปฌ์์ ํ๊ทธ ์ญ์
git tag --delete <ํ๊ทธ๋ช
>
# ์๊ฒฉ ์ ์ฅ์์์ ํ๊ทธ ์ญ์
git push origin --delete <ํ๊ทธ๋ช
>
# ์๊ฒฉ ์ ์ฅ์์ ํ๊ทธ ํธ์
git push --tags
# ๋ชจ๋ ํ๊ทธ ๋ชฉ๋ก ์กฐํ
git tag
# ์ ์ฅ์ ๋ณต์
git clone <์ ์ฅ์-URL>
# ์๊ฒฉ ์ ์ฅ์์์ ๋ณ๊ฒฝ์ฌํญ ๊ฐ์ ธ์ค๊ธฐ
git fetch
# ์๊ฒฉ ๋ธ๋์น์ ๋ณ๊ฒฝ์ฌํญ ๋ณํฉ
git merge <๋ธ๋์น๋ช
>
# ์๊ฒฉ ์ ์ฅ์์์ ๋ณ๊ฒฝ์ฌํญ ๊ฐ์ ธ์ค๊ณ ๋ณํฉ (fetch + merge)
git pull
# ๋ก์ปฌ ๋ฐ ์๊ฒฉ ๋ธ๋์น ์ํ ํ์ธ
git branch -a
# ์ ๋ธ๋์น ์์ฑ
git branch <์-๋ธ๋์น๋ช
>
# ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํ
git checkout <๋ธ๋์น๋ช
>
# ์์ ๋ ๋ช
๋ น์ด๋ฅผ ๊ฒฐํฉ: ์ ๋ธ๋์น ์์ฑ ๋ฐ ์ ํ
git checkout -b <์-๋ธ๋์น๋ช
>
# ์์
๋๋ ํ ๋ฆฌ์ ๋ณ๊ฒฝ์ฌํญ ์์ ์ ์ฅ
git stash
# ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ์์
๋๋ ํ ๋ฆฌ์ ์ ์ฉ
git stash pop
# ์๊ฒฉ ์ ์ฅ์ ๋ชฉ๋ก ํ์
git remote -v
# ์ ์๊ฒฉ ์ ์ฅ์ ์ค์
git remote add <์๊ฒฉ-์ด๋ฆ> <์ ์ฅ์-URL>
# ์๊ฒฉ ์ ์ฅ์ ์ญ์
git remote remove <์๊ฒฉ-์ด๋ฆ>
# ์คํ
์ด์ง ๋์ง ์์ ๋ณ๊ฒฝ์ฌํญ ๋ณด๊ธฐ
git diffmaster ๋ธ๋์น์์ feture ๋ธ๋์น๊ฐ ์์ฑ๋๋ ์ํฌํ๋ก๋ฅผ ๋ณด์ฌ์ค๋ค. feature ๋ธ๋์น์์ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๊ณ ์ปค๋ฐ๋ ๋ค์ master ๋ธ๋์น๋ก ๋ค์ ๋ณํฉ๋์ด ์๋ก์ด ๊ธฐ๋ฅ์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋๋ค.
