LMS ์์คํ ์ ์ต๊ณ ์ฅ์ ! ์ฃผ๋ง์๋ ์๊ฐํ ์ ์๋ค.
๐ดGit์ด๋ ๋ฌด์์ธ๊ฐ?
Git์ ํ๋ก๊ทธ๋๋จธ๋ค์ ํ์ ๋๊ตฌ์ธ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ๋ฌธ์๋ฅผ ์์ฑํ ๋, "์ต์ข ", "์ง์ง์ต์ข ", "์ง์ง์ง์ง์ต์ข "๊ณผ ๊ฐ์ ํ์ผ๋ช ์ ๋ถ์ด๋ ๊ฒ์ฒ๋ผ, ํ๋ก๊ทธ๋๋ฐ ์์ ์์๋ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค. Git์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ด๋ค.
Git๊ณผ Github์ ๊ด๊ณ
Git์ Github์ ์ปดํจํฐ์ ํด๋ผ์ฐ๋ ์ ์ฅ์ ๊ด๊ณ์ ๋น์ทํ๋ค. Git์ ๋ด ์ปดํจํฐ์์ ์ง์ ์คํ๋๋ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ด๊ณ , Github์ ์ด Git์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ก์ ํธ๋ฅผ ์จ๋ผ์ธ ์์์ ์ ์ฅํ๊ณ ๊ณต์ ํ ์ ์๋ ํ๋ซํผ์ด๋ค.
ํ ํ๋ก์ ํธ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. ๊ฐ์ ์ปดํจํฐ์์ Git์ผ๋ก ์์ ์ ํ๊ณ , ์ด ์์ ๋ฌผ์ Github์ ์ฌ๋ฆฐ๋ค. ๊ทธ๋ผ ๋ค๋ฅธ ํ์๋ค์ ์ด ์์ ๋ฌผ์ ์์ ์ ์ปดํจํฐ๋ก ๋ด๋ ค๋ฐ์ ์์ ์ ์ด์ด๊ฐ๊ณ , ๋ค์ ๋ณ๊ฒฝ์ฌํญ์ ์ ๋ฐ์ดํธ ํ ์ ์๋ค.
Git๊ณผ Github์ ์ฒ์ ์ ํ๋ฉด ๊ฐ์๊ฑฐ ์๋? ์๊ฐ์ด ๋ค ์๋ ์์ง๋ง, ์ด ๋์ ๋ถ๋ช ํ๊ฒ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ค. Git์ ๋ด ์ปดํจํฐ์์ ์ง์ ์คํ๋๋ ๋ฒ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ด๊ณ , Github์ Git์ผ๋ก ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์จ๋ผ์ธ ์์ ์ ์ฅํ๊ณ ๊ณต์ ํ๋ ํ๋ซํผ์ด๋ค.
Git์ ๋ก์ปฌ, Github์ ์จ๋ผ์ธ
Git์ ์ด๋ป๊ฒ ๋ฒ์ ์ ๊ด๋ฆฌํ ๊น?
"์ง์ง์ง์ง์ต์ข " ๋ฐฉ์์ ๋ฒ์ ๊ด๋ฆฌ๋ ํ์ผ ์ฉ๋์ ๋น๋ํ, ๋ณ๊ฒฝ ์ฌํญ ์ถ์ ๋ถ๊ฐ ๋ฑ์ ๋จ์ ์ด ์๋ค. Git์ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ ๋ฐฉ์์ผ๋ก ๋ฒ์ ์ ๊ด๋ฆฌํ๋ค.
์น ํ์ด์ง๋ฅผ ๋ง๋๋ ์ํฉ์ ๊ฐ์ ํด๋ณด์.
๋ฒ์ 1.0: ๋ฉ์ธ ํ์ด์ง ๋ฐฐํฌindex.html
ํ์ผ์ ๋ฉ์ธ ํ์ด์ง ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ , ๋ฐฐํฌ๋ฅผ ํ๋ค. ์ด ์์ ์์ Git์ index.html
์ ํ์ฌ ์ํ๋ฅผ ์ค๋
์ท
์ผ๋ก ์ ์ฅํ๋ค. ์ค๋
์ท
์ ๊ณ ์ ํ ํด์๊ฐ
์ ๊ฐ๋๋ค.
๋ฒ์ 1.1: ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ
์น ์ฌ์ดํธ์ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ์ถ๊ฐ๋ฅผ ํ๋ค. ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ์ํด ์๋ก์ด ํ์ผ์ด ์ถ๊ฐ๋๊ณ , ๊ธฐ์กด ํ์ผ์ด ์์ ๋์๋ค. Git์ ์ด์ ๋ฒ์ ๊ณผ ํ์ฌ ๋ฒ์ ์ ์ฐจ์ด(diff)๋ง์ ์ ์ฅํ๋ค. ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์๋ก ์ ์ฅํ๊ณ , ๋ณ๊ฒฝ๋์ง ์์ ๋ถ๋ถ์ ์ด์ ์ ๋ด์ฉ์ ๊ทธ๋๋ก ์ฐธ์กฐํ๋ค.
๋ฒ์ 1.2: ์คํ์ผ ์ ์ฉ
๋ฒ์ 1.3: ๋๊ธ ๊ธฐ๋ฅ ์ถ๊ฐ
.
.
.
์ด๋ ๊ฒ ๋ฒ์ ์ด ์ถ๊ฐ๋ ๋๋ง๋ค, ์ค๋ ์ท-์ฐจ์ด์ (diff) ๊ธฐ๋ฐ ์ด๋์ ๋ฐ๋ณตํ๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋๋๋ฆฌ๊ณ ์ถ์ผ๋ฉด, ์ค๋ ์ท์ผ๋ก ์ ์ฅํ ๋ ์์ฑ๋ ๊ณ ์ ํด์๊ฐ์ ์ฌ์ฉํ์ฌ ์ง์ ํ ๋ฒ์ ์ผ๋ก ๋์๊ฐ ์ ์๋ค.
Git ๋ฒ์ ๊ด๋ฆฌ ๋ฐฉ์์ ์ฅ์
- ์ฉ๋ ํจ์จ์ฑ: ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์ ์ฅ
- ๋น ๋ฅธ ๋ฒ์ ์ ํ: ์ฐจ์ด์ ๋ง ์ ์ฉํ๋ฉด ๋
- ์์ ์ฑ: ๊ฐ ๋ฒ์ ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๋ณด์กด
- ํ์ ์ฉ์ด: ์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ์์ ๊ฐ๋ฅ
๐Git ์์ํ๊ธฐ - ๋ช ๋ น์ด
Git์ ์ฌ์ฉํ ๋ ์์ฃผ ์ฌ์ฉํ๊ฒ ๋๋ ๋ช ๋ น์ด๋ค์ ์ ๋ฆฌํด๋ณด์๋ค.
๋๋ ํ ๋ฆฌ๋ฅผ ๋ค๋ฃจ๋ ๋ช ๋ น์ด
ls # ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํ์ผ/ํด๋ ๋ชฉ๋ก ํ์
cd # ๋๋ ํ ๋ฆฌ ์ด๋
mkdir # ์ ๋๋ ํ ๋ฆฌ ์์ฑ
Git ํ์ ๋ช ๋ น์ด
git init # Git ์ ์ฅ์ ์ด๊ธฐํ
git status # ํ์ฌ ์ ์ฅ์ ์ํ ํ์ธ
git add # ํ์ผ์ ์คํ
์ด์ง ์์ญ์ ์ถ๊ฐ
git commit # ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฅ์์ ๊ธฐ๋ก
git log # ์ปค๋ฐ ํ์คํ ๋ฆฌ ํ์ธ
CLI VS GUI
Git์ ์ฌ์ฉํ๋ ๋ฐฉ์์๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค. ๋ช ๋ น๋ฅผ ์ ๋ ฅํ์ฌ ์ฌ์ฉํ๋ CLI ๋ฐฉ์๊ณผ, ์ธํฐํ์ด์ค๋ก ์กฐ์ํ๋ GUI ๋ฐฉ์์ด๋ค.
CLI๋ ์ตํ๋๋ฐ ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ๋ช
๋ น์ด๋ค์ ์ง์ ์ธ์์ ์ฌ์ฉํด์ผ ํ์ง๋ง, ์ต์ํด์ง๋ฉด ๋น ๋ฅด๊ฒ ์ธ ์ ์๋ค.
GUI๋ ์๊ฐ์ ์ผ๋ก ๋ณ๊ฒฝ์ฌํญ์ ํ์ธํ ์ ์๊ณ , ๋ฒํผ ์กฐ์์ผ๋ก pull
push
fetch
๋ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ด ์ฉ์ดํ๋ค. Github Desktop์ด๋ Git Kraken ๋ฑ์ด ๋ํ์ ์ธ GUI ๋๊ตฌ์ด๋ค. ๋ณต์กํ branch ๊ตฌ์กฐ๋ฅผ ํ์
ํ๊ฑฐ๋, commit ํ์คํ ๋ฆฌ๋ฅผ ํ์ธํ ๋ ์ ์ฉํ๋ค.
์ค๋ ๊น ์ฌ์ฉ ์ค์ต์ vscode์์ ํฐ๋ฏธ๋์ ์ฌ์ฉํ์ฌ ์งํํด๋ณด์๋ค
Git ๋ช ๋ น์ด ์ค์ต
- gitTest ํด๋ ์์ฑ
- gitTest ํด๋๋ก ์ด๋
- gitTest ํด๋ ํ์ผ ํ์ธ(๋น ํด๋์ด๋ฏ๋ก ์๋ฌด๋ฐ ์ถ๋ ฅ ์์)
- git ์ ์ฅ์ ์ด๊ธฐํ
- dakyung.txt ํ์ผ ๋ด์ฉ ์์ฑ
- gitTest ํด๋ ํ์ผ ํ์ธ(dakyung.txt ํ์ผ์ ์์ฑํ์ผ๋ฏ๋ก ํ์ผ๋ช ์ด ์ถ๋ ฅ๋จ)
- git ์ํํ์ธ(git add๋ฅผ ํ์ง ์์์ผ๋ฏ๋ก ๋นจ๊ฐ์ ๊ฒฝ๊ณ ๋ฉ์์ง ์ถ๋ ฅ)
- dakyung.txt๋ฅผ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐ
- ๋ค์ git ์ํ ํ์ธ(ํ์ผ์ ์คํ ์ด์ง ์์ญ์ ์ถ๊ฐํ์์ผ๋ฏ๋ก, ์ด๋ก์์ผ๋ก ํ์ผ ํ์)
- ์ปค๋ฐ ์์ฑ
- dakyung.txt ๋ด์ฉ ์์
- git ์ํ ํ์ธ(๋ด์ฉ์ ์์ ํ์์ผ๋ฏ๋ก ๋ค์ ๋นจ๊ฐ์์ผ๋ก ์ด๋ฆ ํ์)
- ๊ตฌ์ฒด์ ์ธ ๋ณ๊ฒฝ ๋ด์ฉ ํ์ธ
- ๋ณ๊ฒฝ ์ฌํญ ์ปค๋ฐ
- ์ปค๋ฐ ํ์คํ ๋ฆฌ ํ์ธ
- ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ํ ์ค๋ก ๊ฐ๋จํ๊ฒ ํ์ธ
๐งจ์ ์ฉํ VSCode Git Extension
Git History: ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๋ณผ ๋ ์ ์ฉํ VSCode ์ต์คํ ์
Git Graph: VSCode์์ ์ปค๋ฐ ๋ก๊ทธ๋ฅผ ๊ทธ๋ํ ํ์์ผ๋ก ํ์ธํ ์ ์๋ ์ต์คํ ์
Git Lens: Git ๊ด๋ จํ์ฌ ์์ฒญ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์ต์คํ ์