- CLI ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ
- apt / wget ์ค์น
- nvm & node.js ์ค์น
- npm & package.json ์ค์น
- Git ์ค์น
CLI(Command Line Interface)๋ ๋ช ๋ น์ด ์ธํฐํ์ด์ค๋ผ๊ณ ํ๋ฉฐ ํ ์คํธ ํฐ๋ฏธ๋์ ํตํด ์ฌ์ฉ์์ ์ปดํจํฐ๊ฐ ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ๋ปํฉ๋๋ค. ์ฆ, ์์ ๋ช ๋ น์ ์ฌ์ฉ์๊ฐ ์ปดํจํฐ ํค๋ณด๋ ๋ฑ์ ํตํด ๋ฌธ์์ด์ ํํ๋ก ์ ๋ ฅํ๋ฉฐ ์ปดํจํฐ๋ก๋ถํฐ์ ์ถ๋ ฅ ์ญ์ ๋ฌธ์์ด์ ํํ๋ก ์ฃผ์ด์ง๋๋ค.
์์ฆ์ ๋๋ถ๋ถ์ ์ด์์ฒด์ ๋ ์๋์ฐ ์ฐฝ์ ๋ณด๋ฉฐ ๋๋ถ๋ถ ๋ง์ฐ์ค๋ก ์์ ํ๋ GUI(Grapgic User Interface)๊ทธ๋ํฝ ์ ์ ์ธํฐํ์ด์ค๋ฅผ ์ง์ํฉ๋๋ค. ํ์ง๋ง ์ฌ์ ํ ๋ง์ ๋ถ๋ถ์์ CLI(Comand Line Interface)๋ฅผ ๋ง์ด ์ฌ์ฉํ๋๋ฐ ์๋์ฐ์ CMD์ฐฝ๊ณผ MacOS์ Terminal์ฐฝ์ด CLI๋ฅผ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค..
CLI๋ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ์ด๋ฐ ์ ์ถ๋ ฅ์ด ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ์ํํธ์จ์ด๋ฅผ ํฐ๋ฏธ๋์ด๋ผ๊ณ ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ช ๋ น์ด๋ฅผ ํด์ํด์ฃผ๋ ์ํํธ์จ์ด๋ฅผ ์ ธ(shell)์ด๋ผ๊ณ ํฉ๋๋ค.
Window์์๋ โ>โ MacOS, Linux์์๋ โ$โ์ ํํ๋ก ํ์ํ๋ฉฐ ์ฌ์ฉ์์ ๋ช ๋ น์ ๊ธฐ๋ค๋ฆฌ๋ Command Prompt(๋ช ๋ นํ๋กฌํํธ)๊ฐ ์กด์ฌํฉ๋๋ค.
์ต์ด ์ค์ ]
- git config --global user.name ๊ณ์ ๋ช
- git ๊ณ์ ๋ช ๋ฑ๋ก
git config --global user.email ์ด๋ฉ์ผ- git ์ด๋ฉ์ผ ๋ฑ๋ก
git config --list- git ์ค์ ์ ๋ณด ์กฐํ
git config --global core.editor ์๋ํฐ- git editor ๋ณ๊ฒฝ
- vi๋ก ๋ณ๊ฒฝ > git config --global core.editor vi
- vscode๋ก ๋ณ๊ฒฝ > git config --global core.editor "code --wait"
p.s.) vscode๋ฅผ ์ค์นํ์ ๊ฒฝ์ฐ code . ๋ช ๋ น์ด๋ก vscode ์คํ ๊ฐ๋ฅ
git config --global -e- git config์ ์ค์ ํ editor๋ก config ํ์ผ ์ด๊ธฐ
p.s.) vscode๋ฅผ diff tool OR merge tool๋ก ์ด์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ config์ ์ถ๊ฐ
git config --global alias.์ค์ผ๋ช ๋ น์ด ์๋ณธ๋ช ๋ น์ด- ๋ช ๋ น์ด alias ๋ฑ๋ก
e.g.) git config --global alias.sts status == git sts
[๊ธฐ๋ณธ]
- git init
- ํ์ฌ ๋๋ ํ ๋ฆฌ๋ฅผ git local repository[Working Directory]๋ก ์ง์ (์์ฑ)
- ls -al ๋ช ๋ น์ด๋ก .git ์จ๊นํ์ผ ์์ฑ ํ์ธ
- rm -rf .git ๋ช ๋ น์ด๋ก local repository ์ญ์
git status- ํ์ผ ์ํ ํ์ธ(staged, untracked, ..)
git add ํ์ผ๋ช- ํด๋น ํ์ผ์ [Staging Area]๋ก ์ด๋(tracking)
git add .
-ํ์ฌ ํด๋์ ์ ์ฒด ํ์ผ์ ์ด๋
git commit- [Staging Area]์ ์๋ ํ์ผ์ ์๊ฒฉ์ ์ฅ์[Repository]๋ก ์ปค๋ฐ
- ์ต์ ์์ด ํด๋น ๋ช ๋ น์ด๋ง ์ ๋ ฅํ ๊ฒฝ์ฐ editor ํธ์ถ
git commit -m "์ปค๋ฐ๋ฉ์ธ์ง"- editor ํธ์ถ์์ด ๋ฐ๋ก ์ปค๋ฐ
git commit -am "์ปค๋ฐ๋ฉ์ธ์ง"- [Staging Area]์ ์ฌ๋ฆผ๊ณผ ๋์์ ์ปค๋ฐ(= git add .+ git commit -m "์ปค๋ฐ๋ฉ์ธ์ง")
- ๋จ, 1๋ฒ์ด๋ผ๋ ์ปค๋ฐ๋ ๋์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
git diff- local repository[Working Directory]์ [Staging Area]์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค
git log- commit ๋ก๊ทธ ํ์ธ
[๋ธ๋์น]
- git branch
- ๋ธ๋์น ๋ชฉ๋ก ์กฐํ(ํ์ฌ ์ํ ๋ธ๋์น๋ ์์ *๊ฐ ๋ถ์)
git branch ๋ธ๋์น๋ช- ๋ธ๋์น๋ช ์ผ๋ก ๋ธ๋์น ์์ฑ
- ๋จ, main ๋ธ๋์น์ 1๋ฒ ์ด์ commit ํด์ผํจ
git branch checkout ๋ธ๋์น๋ช- ํด๋น ๋ธ๋์น๋ก local repository[Working Directory] ๋ณ๊ฒฝ
git branch -b ๋ธ๋์น๋ช- ๋ธ๋์น ์์ฑ ํ checkout(= git branch ๋ธ๋์น๋ช + git branch checkout ๋ธ๋์น๋ช )
git branch -d ๋ธ๋์น๋ช- ๋ธ๋์น๋ช ๋ธ๋์น ์ญ์
git branch merge ๋ธ๋์น๋ช- ํ์ฌ checkout๋ ๋ธ๋์น๋ก ๋ธ๋์น๋ช ์ ๋ธ๋์น ํฉ์นจ
[๊นํ๋ธ]
- git remote
- git ์๊ฒฉ์ ์ฅ์[Repository] ๋ชฉ๋ก ํ์ธ
git remote -v- git ์๊ฒฉ์ ์ฅ์ ์ด๋ฆ๊ณผ url ๋ชฉ๋ก ํ์ธ
git remote add ์ ์ฅ์์ด๋ฆ ์ ์ฅ์URL- ์ ์ฅ์URL์ ์๊ฒฉ์ ์ฅ์๋ฅผ ์ ์ฅ์์ด๋ฆ์ผ๋ก ์ถ๊ฐ
git remote rm ์ ์ฅ์์ด๋ฆ- ์ ์ฅ์์ด๋ฆ์ ์๊ฒฉ์ ์ฅ์ ์ ๊ฑฐ
git pull- ์๊ฒฉ์ ์ฅ์[Repository]์ ๋ด์ฉ์ ๊ฐ์ ธ์์(fetch) local repository[Working Directory]์ ํฉ์นจ(merge)
git push- ์๊ฒฉ์ ์ฅ์[Repository]์ local repository[Working Directory]์ commit ๋ด์ฉ์ ์ฌ๋ฆผ
git push -u ์๊ฒฉ์ ์ฅ์๋ช ๋ก์ปฌ๋ธ๋์น๋ช- ๋ก์ปฌ๋ธ๋์น๋ช ์ commit ๋ด์ฉ์ ์๊ฒฉ์ ์ฅ์๋ก ์ฌ๋ฆผ
- -u ์ต์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํด๋น ์๊ฒฉ์ ์ฅ์์ ๋ธ๋์น๊ฐ default๋ก ์ง์ ๋์ด git push ๋ช ๋ น์ด๋ง ์ ๋ ฅ ๊ฐ๋ฅ
git fetch- ์๊ฒฉ์ ์ฅ์[Repository]์ ๋ด์ฉ์ local repository[Working Directory]๋ก ๊ฐ์ ธ์ด
- git checkout ์๊ฒฉ์ ์ฅ์๋ช /๋ก์ปฌ๋ธ๋์น๋ช OR git checkout FETCH_HEAD =๊ฐ์ ธ์จ fetch ๋ด์ฉ ํ์ธ
git clone ์ ์ฅ์URL- ์ ์ฅ์URL์ ์๊ฒฉ์ ์ฅ์๋ฅผ ๋ณต์ฌํ์ฌ ์ถ๊ฐ(remote add ๋ช ๋ น ํ์์์)
package.json ํ์ผ์ start ์คํฌ๋ฆฝํธ ๋ถ๋ถ์ด ''๋น ๋ฌธ์์ด ์ธ๋ฐ ์ด๋ถ๋ถ์ node index.js๋ก ์์ ํด์ฃผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ณผ์ ๊ฐ ์ถฉ์กฑํ๋ ์กฐ๊ฑด์ ๋ค ํต๊ณผ ํ์๋ค๊ณ ๋ฌ๋ค.
ํ ๋จ๊ณ ํ๋จ๊ณ ์ค์นํ๋ฉด์ ์ด๋ฐ๊ฒ ์ค์ ์ด๋ฃจ์ด๋ ์ง๋ ๊ฑด์ง ์๋ฌธ์ด ๋ค๊ณ ๋ชป๋ณด๋๊ฒ ์ ๋ง ๋ง์๋ค. ์ ์ด๋ ๊ฒ ๋ณต์กํ๊ฒ ๋ค๊ฐ๊ฐ์ผํ๋ ๊ฑด์ง ์๋ git ์ต์ํ์ง ์์์ ๊ทธ๋ฐ๊ฑด์ง ์ค๋ ๊ทธ๋๋ ๋ฌด์ฌํ ์๋ฌ์์ด ์ ์ค๋ฌด์คํ๊ฒ ์ ๋์ด๊ฐ๊ณ ํ์ด๋ถ๊ณผ๋ ์๋ก ์๊ณ ์๋์ง ์ง์ ๊ณต์ ํด๊ฐ๋ฉฐ ์ค๋ ๋ง๋ฌด๋ฆฌ๋ฅผ ์ ํค๋๊ฐ๊ฒ ๊ฐ๋ค.