๋ณธ์บ ํ ์์๐๐๐ + Git, Github
ํ๋ฃจ ์์ฝ
๋๋์ด ์ค๋๋ถํฐ ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ Spring ํธ๋์ด ์์๋์๋ค!!
์์นจ 9์๋ถํฐ ์คํ 9์๊น์ง ์ญ ์ด์ด์ง๋... 12์๊ฐ ๊ณต๋ถ๋ผ๋ ๊ฒ์ ๋ง์ฃผํ๊ฒ ๋์๋๋ฐ ์ค์ ์ ๋ณธ์บ ํ์ ๋ํ OT๋ฅผ ๋ฃ๊ณ ๋๋๊น ์ค์ ์ด ์ญ์ ๋์ด ์์๋ค.. ๐ฎ๐ฎ
OT์์๋ ์ฃผ์ ์ฌํญ, ํ๋ จ์ฅ๋ ค๊ธ ๋ฑ๋ฑ ํ์ํ ๋ด์ฉ์ ๋ํด์ ๋ด๋น ๋งค๋์ ๋๊ป์ ์ค๋ช
์ ํด์ฃผ์
จ๊ณ , ๊ณง๋ฐ๋ก ์ด์ด์ Chapter 1. ๋ฏธ๋ํ๋ก์ ํธ์ ์งํ์ ๋ํด ์์ธํ๊ฒ ์๋ ค์ฃผ์
จ๋ค.
๋ณธ์บ ํ ์ฒซ ์ฃผ๋ถํฐ ํ๋ก์ ํธ๋ผ๊ณ ํด์ ๊ฒ์ ๋จน์๋๋ฐ ๋คํํ ๋ด๊ฐ ์ฌ์ ์บ ํ๋์ ๋ฐฐ์ ๋ ์น ์ข
ํฉ ๊ฐ๋ฐ ๊ฐ์๋ฅผ ํ ๋๋ก ์น ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ ๊ธ์์ผ์ ๋ฐํํ๋ ํ๋ก์ ํธ์๋ค.
์๋ก ๋ง๋ ํ์๋ค๊ณผ ๊ฐ๋จํ๊ฒ ์๊ธฐ์๊ฐ๋ฅผ ํ๊ณ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์์ S.A๋ผ๋ ๊ฒ์ ์์ฑํ๋ค.
๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ํ๋ก์ ํธ ๊ณํ์์ ๋๋์ด์๋ค!
ํ๋ช
, ํ๋ก์ ํธ๋ช
, ์ญํ ๋ถ๋ด, ์์ด์ด ํ๋ ์, ๊ฐ๋ฐ์ผ์ ๋ฑ๋ฑ์ ํ์๋ค๊ณผ ์์ํด์ ์์ฑํ๊ณ ๋ณธ๊ฒฉ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค.
์ ์ฌ์ ๋จน๊ณ ๋์ 2์์๋ Git & Github์ ๋ํด์ ํํฐ๋๊ป์ ์ค๋ช
ํด ์ฃผ์๋ ์ธ์
์๊ฐ์ ๊ฐ์ก๋ค.
์ธ์
์ด ๋๋ ํ, ๋์ ํ์ 1๋ถ์ด ๊ฐ์ด ๋ฉ์ธ ํ์ด์ง๋ฅผ ๋ด๋นํด์ ๋ฉ์ธ ํ์ด์ง์ ๋ผ๋ HTML๋ฅผ ์์ฑํ๋ค.
ํ์ง๋ง ๋ง์ ๋ง๋ค๊ณ ๋ณด๋ ํ์ด์ง๊ฐ ์๊ฐ๋ณด๋ค ๋์ ์ ๋ค์ด์ค์ง ์์๋ค....
๊ทธ๋์ ๋ค์ ํ์ด์ง์ ๋ํ ๊ณ ๋ฏผ์ ํ์๊ณ .. ์์์ ์๋ ํ๋ก์ ํธ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋์ ์ ๋ณด์ด๋๋ก ์์ด์ด ํ๋ ์์ ์๋ก ๋์์ธํ๋ค!
์ด๊ฒ์ด ๋ฉ์ธ ํ์ด์ง์ ์ต์ข
์์ด์ด ํ๋ ์์ด๋ค!!
์์ด์ด ํ๋ ์์ ํ ๋๋ก ํ์๋ถ์ด ์๋จ ๋ด๊ฐ ํ๋จ์ ๋ด๋นํด์ ํ์ด์ง๋ฅผ ๋ง๋ค๊ธฐ ์์ํ๋ค!
Git & Github ๋ฟ์๊ธฐ ๐
ํ์ ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
pwd (print working directory)
ํ์ฌ ๋ด๊ฐ ์์
ํ๋ ํด๋๋ฅผ ๋ณด์ฌ๋ฌ๋ผ๋ ๋ป์ด๋ค.
โ๏ธ ์ฐธ๊ณ
~ ๋ Home(ํ)์ด๋ผ๋ ๊ฒฝ๋ก์ด๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ๋ณด๋ ๋ฐ์คํฌํ๋ณด๋ค ๋ ์์์ ํด๋๋ฅผ ๋งํ๋ค.
ls
๋ด ํด๋ ์์ ์๋ ํด๋ & ํ์ผ ๋ด์ญ๋ค์ ๋ณด์ฌ์ค๋ค.
ls - a (list all)
์จ๊ฒจ์ง ํ์ผ(๋ณดํต .์ผ๋ก ์์ํ๋ค.)๋ ๋ชจ๋ ๋ณผ ์ ์๋ค.
cd ํด๋๋ช
(change directory)
ls ๋ช
๋ น์ด์์ ํ์ธ๋ ํด๋๋ก ์ด๋ ๊ฐ๋ฅํ๋ค.
๋ง์น ๋ฐ์คํฌํ์ ํด๋๋ฅผ ๋๋ธ ํด๋ฆญํด์ ๋ค์ด๊ฐ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ์ด๋ค.
- .. : ํ ๋จ๊ณ ์์ ํด๋๋ผ๋ ๋ป์ด๋ค.
- ํด๋๋ช /ํด๋๋ช ์ผ๋ก ํ ๋ฒ์ ๋ ๊น์ด ๋ค์ด๊ฐ ์ ์๋ค.
mkdir ํด๋๋ช
(make directory)
ํ์ฌ ๊ฒฝ๋ก์์ ํด๋๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด์ด๋ค.
touch ํ์ผ๋ช
ํ์ฌ ๊ฒฝ๋ก์์ ํ์ผ์ ์์ฑํ๋ ๋ช
๋ น์ด์ด๋ค.
โ๏ธ ์ฐธ๊ณ
์ ํํ๋ ํ์ผ์ ์์ฑ๊ณผ ํ์ผ์ ๋ ์ง, ์๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด์ด๋ค.
Git & Github ๊ฐ๋
Git
์ฝ๋ ๋ณ๊ฒฝ์ ๊ธฐ๋ก์ด๋ค.
๋ฒ์ ๊ด๋ฆฌ ๋๊ตฌ (ํ์ ๊ด๋ฆฌ ๋๊ตฌ)
์ํํธ์จ์ด์ ๋ณ๊ฒฝ์ฌํญ์ ์ฒด๊ณ์ ์ผ๋ก ์ถ์ ํ๊ณ ํต์ ํ๋ ๊ฒ์ด๋ค. (๋ฉด์ ์ฉ)
Github
๋ฐฑ์
๊ณผ ๊ณต์ ๊ฐ ๊ฐ๋ฅํ ์จ๋ผ์ธ ์ฝ๋ ์ ์ฅ์์ด๋ค.
Girhub์ผ๋ก ๋ฐฑ์
, ๊ณต์ , ํ์
์ด ๊ฐ๋ฅํ๋ค.
Git ํ์ ๋ช ๋ น์ด
git init
์ฝ๋ ๊ด๋ฆฌ๋ฅผ ์์ํ๋ ๋ช
๋ น์ด์ด๋ค.
initialize(์ด๊ธฐํํ๋ค, ์ด๊ธฐ ์ธํ
ํ๋ค)์ ์ค์๋ง.
ํ๋ก์ ํธ ์์ ์ ๋ฑ ํ ๋ฒ๋ง ์
๋ ฅํ๋ฉด ๋๋ค. → ์ฌ๋ฌ ๋ฒ ์
๋ ฅํ๋ค๊ณ ๋ฌธ์ ๊ฐ ๋์ง๋ ์๋๋ค.
์ ํํ ํ๋ก์ ํธ ํด๋(๊ฒฝ๋ก)์์ ์
๋ ฅํด์ผ ํ๋ค. → ์๋ชปํ๋ฉด ๋ฐ์คํฌํ ์ ์ฒด ํ์ผ, ํด๋๊ฐ ๊ธฐ๋ก๋ ์ ์๋ค.
git add & commit
git add ํ์ผ๋ช
git commit -m "๋ฉ์์ง ์์ฑ" → ๋ฉ์์ง ๋ถ๋ถ์ ๋ด๊ฐ ๋ฌด์จ ์ฝ๋๋ฅผ ์งฐ๋์ง ์์ธํ๊ฒ ์ ๋ ๊ฒ์ด ์ข๋ค.
์ ์ฅ ๋ช
๋ น์ด๊ฐ 2๊ฐ์ธ ์ด์
git add ํ์ผ๋ช
→ ์ ์ฅํ๊ธฐ ์ ์ ์ฅํ ํ์ผ์ ์ง์ ํ๋ค.
git commit -m "๋ฉ์์ง ์์ฑ" → ์ค์ ๋ก ์ ์ฅํ๋ ๋ช
๋ น์ด์ด๋ค.
ํ์ผ์ ํ ๋ฒ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
git add .
git commit -m "๋ฉ์์ง ์์ฑ"
git status
์ ์ฅ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ช ๋ น์ด์ด๋ค.
git log
์ ์ฅ ๋ด์ญ์ ํ์ธํ๋ ๋ช
๋ น์ด์ด๋ค.
commit ๋ฉ์์ง๋ก ์ฝ๋ ๋ณ๊ฒฝ์ ์ ์ถ์ธกํ ์ ์๋ค.
ํค๋ณด๋ q๋ก ๋น ์ ธ๋์ฌ ์ ์๋ค.
Github์ผ๋ก ์ฝ๋ ๋ฐฑ์ ํ๊ธฐ
github์ ์ฌ์ฉ ์ด์ : ๋ฐฑ์ , ๊ณต์ , ํ์
- ์จ๋ผ์ธ ์ ์ฅ์(github repository)๋ฅผ ๋ง๋ค๊ธฐ
- ๋ด ์ฝ๋๋ฅผ Github repository๋ก ์ ๋ก๋ํ๊ธฐ
- ์ถ๊ฐ๋ก ์์ ๋ ์ฝ๋ github์ ๋ฐ์ํ๊ธฐ - git push
์ฒซ ์
๋ก๋ ์ 3๊ฐ์ ๋ช
๋ น์ด
git remote add origin <github ์ฃผ์>
git branch -M main
git push -u origin main
Github ํ์ ํ๊ธฐ + ์ถฉ๋ ํด๊ฒฐํ๊ธฐ
- ์ด๊ธฐ ํ๋ก์ ํธ ์ฝ๋ ์์ฑ
- github ๋ ํฌ์งํ ๋ฆฌ ์์ฑ
- ์ฝ๋ github์ ์ฌ๋ฆฌ๊ธฐ (git push)
ํ์ฅ์ด repository๋ฅผ ๋ง๋ค์ด์ ํ๋ ฅ์(collaborator)๋ก ํ์๋ค์ ๋ฑ๋กํ๋ค.
์ด๋๋ฐ์ ํ์๋ค์ git clone ์ฝ๋๋ฅผ ์ด์ฉํด์ ์ฝ๋๋ฅผ ๋ณต์ฌํด ์จ๋ค.
ํ์๋ค๋ ์ฝ๋๋ฅผ ์์ ํ๊ณ github์ ์ฌ๋ฆฐ๋ค. (git push)
๋ค๋ฅธ ์ฌ๋์ด ๋ณ๊ฒฝํ ์ฝ๋๋ฅผ ๋ด ์ฝ๋์๋ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ git pull ์ฝ๋๋ฅผ ํ์ฉํ๋ค.
๋ค๋ฅธ ์ฌ๋์ด ์ด๋ฏธ git push๋ฅผ ํ๊ณ ๋ด๊ฐ ์ด์ด์ git push๋ฅผ ํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋ git pull์ ๋จผ์ ์คํํ๊ณ git push๋ฅผ ์คํํ๋ฉด ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋ค!
์ถฉ๋(Conflict) ํด๊ฒฐํ๊ธฐ
์ถฉ๋์ด ๋ฐ์ํ๋ ์ด์ ๋ ๊ฐ์ ํ์ผ์ ๊ฐ์ ์์น์ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ์ํ์์ git pull์ ํ๊ฒ ๋๋ฉด ์ถฉ๋๋ ์ํ๋ฅผ ๋ณด์ฌ์ค๋ค.
์ฌ๊ธฐ์ <<<<< HEAD ๋ถ๋ถ๊ณผ =======, >>>>>>>... ๋ถ๋ถ์ ์ญ์ ํ๊ณ ์ํ๋ ์ฝ๋๋ก ์์ ํ๋ฉด ๋๋ค.
์ถฉ๋์ ํด๊ฒฐํ ํ ๋ค์ git push๋ฅผ ํ๋ฉด ์ ์์ ์ผ๋ก ์ฝ๋๊ฐ ์ ์ฅ์ด ๋๋ค.