GIT
- ๋ก์ปฌ ์์คํ
- GIT: ๋ด ์ปดํจํฐ ์์์ ๋ฒ์ ๊ด๋ฆฌ. ๊นํ๋ธ์ ์ํต (๋ฐฑ์ , ๋ณต๊ตฌ, ...)
- GITHUB: ์๊ฒฉ ์ปดํจํฐ์์ ๋ฐฑ์ ๋ด๋นํ๋ ์์คํ . ๋ด ์ปดํจํฐ์ ๋ณ๋๋ก ๋ฒ์ ๊ด๋ฆฌ. ๋ค๋ฅธ ์ปดํจํฐ์ ๊นํ๋ธ๋ฅผ ํตํด ํ์
git install
OS์ ๋ง๊ฒ ๊น ์ค์น
git --version์ผ๋ก ํ์ธ ๊ฐ๋ฅ
์(Shell)
์
ธ (Shell): ์ด์์ฒด์ ์์ ์ฌ์ฉ์์ ์์คํ
๊ฐ์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ ํ๋ก๊ทธ๋จ.
์ฌ์ฉ์๋ ์์ ํตํด ์์คํ
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๊ณ , ์์ ์ด ๋ช
๋ น์ด๋ฅผ ํด์ํ์ฌ ์ด์์ฒด์ ์์ ์คํํ ์ ์๋ ํํ๋ก ๋ณํํ๋ค.
์ Shell์ด๋ผ๋ ์ด๋ฆ์?
- ์ฌ์ฉ์์ ์ด์์ฒด๋ค ๋ด๋ถ(์ปค๋) ์ฌ์ด์ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ธ๋ ์ธต
- ๊ป๋ฐ๊ธฐ๋ฅผ ํตํด์ ์์ ์๋ ๋ด์ฉ๋ฌผ์ ์ ๊ทผํ๋ค๋ ์๋ฏธ์์ ์ด๋ฆ์ด ์ง์ด์ก๋ค๊ณ ํ๋ค!
- ์์:
- MS-DOS(Microsoft Disk Operating System)
- ๋ช ๋ น ํ๋กฌํํธ(cmd, Windows ๊ธฐ๋ณธ ์)
- PowerShell(Windows ๊ณ ๊ธ ๋ช ๋ น์ด ์ ๋ฐ ์คํฌ๋ฆฝํธ ์ธ์ด)
- Bash(Unix/Linux ๊ธฐ๋ฐ ์)
- Terminal(Unix/Linux/macOS์์ ์ ์คํ ์ธํฐํ์ด์ค)
- ์ข
๋ฅ
- CLI (Command Line Interface): ์ ธ(Shell)์์ ๊ธ์๋ฅผ ์ ๋ ฅํ์ฌ ์ปดํจํฐ์๊ฒ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ๋ฐฉ์.
- GUI (Graphic User Interface): ๊ทธ๋ํฝ ์์๋ฅผ ํตํด ์ปดํจํฐ์๊ฒ ๋ช ๋ น์ ๋ด๋ฆฌ๊ณ , ์ฌ์ฉ์์๊ฒ ํ๋ฉด์ ์ ๊ณตํ๋ ๋ฐฉ์.
- ์์ฃผ ์ฐ๋ Shell Command
- ls
๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ๋์ดํ์ฌ ํ์ผ ๋ฐ ํด๋ ๋ชฉ๋ก์ ํ์ธํ ๋ ์ฌ์ฉ. - cd
๋๋ ํ ๋ฆฌ ์ด๋์ ์ฌ์ฉ. ์์: cd /path/to/directory. - mkdir
์๋ก์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ. - rm
ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉ. ์์: rm file.txt, rm -r folder_name. - cp
ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ณต์ฌํ ๋ ์ฌ์ฉ. ์์: cp file.txt /destination. - mv
ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ด๋ํ๊ฑฐ๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ. ์์: mv old_name.txt new_name.txt. - cat
ํ์ผ์ ๋ด์ฉ์ ํฐ๋ฏธ๋์ ์ถ๋ ฅํ ๋ ์ฌ์ฉ. - less
ํ์ผ ๋ด์ฉ์ ํ ํ์ด์ง์ฉ ํ์ํ ๋ ์ฌ์ฉ. - grep
ํ์ผ์์ ํน์ ํจํด์ด๋ ๋ฌธ์์ด์ ๊ฒ์ํ ๋ ์ฌ์ฉ. ์์: grep "search_term" file.txt. - pwd
ํ์ฌ ์์ ์ค์ธ ๋๋ ํ ๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ. - echo
ํ ์คํธ๋ ๋ณ์ ๊ฐ์ ์ถ๋ ฅํ ๋ ์ฌ์ฉ. ์์: echo "Hello, World!". - top
์ค์๊ฐ์ผ๋ก ์์คํ ์ ํ๋ก์ธ์ค ๋ฐ ๋ฆฌ์์ค ์ฌ์ฉ ์ํ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ. - ps
ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค ๋ชฉ๋ก์ ํ์ธํ ๋ ์ฌ์ฉ. - kill
ํน์ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ ๋ ์ฌ์ฉ. ์์: kill 12345. - df -h
๋์คํฌ ๊ณต๊ฐ์ ์ฌ์ฉ๋์ ํ์ธํ ๋ ์ฌ์ฉ. - du -h
๋๋ ํ ๋ฆฌ ๋๋ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ. - ping
๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ. ์์: ping google.com. - ifconfig (๋๋ ip addr)
๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ์ํ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ. - curl
URL์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉ. ์น ์์ฒญ ํ ์คํธ์ ์ ์ฉ. ์์: curl http://example.com. - sudo
๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ๋ช ๋ น์ด๋ฅผ ์คํํ ๋ ์ฌ์ฉ. ์์: sudo apt-get update.
- ls
git status
git init ์ ํ๊ณ git status ํ๋ฉด ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค.
fatal: not a git repository (or any of the parent directories): .git
.git์ด๋?
- Git ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์์ ์ฌ์ฉํ๋ ์จ๊น ๋๋ ํ ๋ฆฌ(Hidden Directory)
- Git ์ ์ฅ์์ ํต์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฅ์๋ก, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
- ํ๋ก์ ํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ์์ฑ๋๋ฉฐ, ์ด ๋๋ ํ ๋ฆฌ๊ฐ ์กด์ฌํจ์ผ๋ก์จ ํด๋น ๋๋ ํ ๋ฆฌ๊ฐ Git ์ ์ฅ์(Git Repository)์์ ์ ์ ์๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ด ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ์์ ํ์ง ์์ผ๋ฉฐ, git ๋ช ๋ น์ด๋ฅผ ํตํด ๊ด๋ฆฌํ๋ค.
- ์ด ๋๋ ํ ๋ฆฌ๊ฐ ์์๋๊ฑฐ๋ ์ญ์ ๋๋ฉด Git ์ ์ฅ์๊ฐ ์ ๋๋ก ๋์ํ์ง ์์ ์ ์๋ค.
- ์ฃผ์ ๊ตฌ์ฑ ์์
- ์ปค๋ฐ(Commits): ๋ชจ๋ ์ปค๋ฐ ๋ด์ญ(Commit History)๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ. ํ๋ก์ ํธ์ ๋ณ๊ฒฝ ์ด๋ ฅ ๊ด๋ฆฌ
- ๋ธ๋์น(Branches): ํ์ฌ ํ๋ก์ ํธ์์ ์ฌ์ฉ ์ค์ธ ๋ธ๋์น ์ ๋ณด(Branch Information)๊ฐ ์ ์ฅ
- ์ค์ (Configuration): Git ์ ์ฅ์์ ๊ด๋ จ๋ ์ค์ ์ ๋ณด(Configuration Data). ์๋ฅผ ๋ค์ด, config ํ์ผ์๋ ์ฌ์ฉ์ ์ด๋ฆ, ์ด๋ฉ์ผ, ์๊ฒฉ ์ ์ฅ์ URL ๋ฑ์ด ์ ์ฅ๋๋ค.
- ์ค๋ธ์ ํธ(Objects): Git์ด ๊ด๋ฆฌํ๋ ํ์ผ์ด๋ ํด๋์ ์ค๋ ์ท(Snapshot) ์ ์ฅ. ํ๋ก์ ํธ์ ๋ชจ๋ ๋ฒ์ ๊ณผ ๊ทธ ๋ณํ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
- ์ฐธ์กฐ(References): ๋ธ๋์น์ ํ๊ทธ๊ฐ ๊ฐ๋ฆฌํค๋ ์ปค๋ฐ์ ๋ํ ์ฐธ์กฐ ์ ๋ณด(References to Commits)๊ฐ ์ ์ฅ๋๋ค.
git init
- ํ์ฌ ๋๋ ํ ๋ฆฌ์ .git ๋๋ ํ ๋ฆฌ ์์ฑ
- ์ด๊ธฐ ๋ธ๋์น ์์ฑ (main or master)
Git ๋ฃจํธ ๋๋ ํ ๋ฆฌ๊ฐ ์์ ๋๋ ํ ๋ฆฌ๋ผ๋ฉด?
๋ง์ฝ, ์๋ก์ด ํด๋๋ฅผ ์ด์๋๋ฐ ์๋์ ๊ฐ์ ๋ฌธ๊ตฌ๊ฐ ๋ฌ๋ค๋ฉด?
"A git repository was found in the parent folders of the workspace or the open file(s). Would you like to open the repository?"
: ์์ ์ค์ธ ์ํฌ์คํ์ด์ค์ ์์ ํด๋์ ๊น ์ ์ฅ์๊ฐ ์๋ค๊ณ ์๋ ค์ฃผ๊ณ ์๋ค.
์ด ๊ฒฝ์ฐ, ํด๋น ๋๋ ํ ๋ฆฌ์ ํ์ผ์ ํ๋๋ฐ์ ์๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ , git status๋ฅผ ํ๋ฉด ์์ ๋๋ ํ ๋ฆฌ์ ํ์ผ๋ค์ด ํ์๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ฆ, git init์ ์ํด์คฌ๋๋ฐ git status ์ Untracked files ํ๋ฉด์ ์์ ๋๋ ํ ๋ฆฌ์ ํ์ผ๋ค์ด ๋์จ๋ค๋ฉด Git์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ธํด๋ณผ ๊ฒ!
git rev-parse --show-toplevel
์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์์ ์ค์ธ ๋๋ ํ ๋ฆฌ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์์ ๋๋ ํ ๋ฆฌ ์ค Git ์ ์ฅ์์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค.
์ด์ ์ documents ํด๋์์ git init์ ํ์๋๋ณด๋ค ^^... ์ด์ ์ผ ๋ฐ๊ฒฌ.
add, commit
git add์ ๋ณ๊ฒฝ์ฌํญ์ ์ฐจ๊ณก์ฐจ๊ณก ๋ชจ์๋๋ ๊ฑฐ๋ผ๋ฉด
git commit ์ ์ง๊ธ๊น์ง ๋ชจ์๊ฑธ๋ก ๋ฒ์ ๋ง๋๋ ๊ฒ!
์์ฆ์ ์ต๊ด์ฒ๋ผ git commit -m ์ ์ผ์๋๋ฐ,
git commit๋ง ํ๋ฉด ์ด๋ ๊ฒ ํ ์คํธ ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฐ๋ค.
!wq๋ก ์ ์ฅ ํ ๋๊ฐ๊ธฐ!
์์ ์ ์ด์ฌํ ์ ๋ฆฌํ๋ ํฌ์คํ โฌ๏ธ
https://yesolz.tistory.com/entry/Do-it-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%A0%95%EB%A6%AC-2%EC%9E%A5
.DS_Store ํ์ผ์ด๋? & ์ง์ฐ๋ ๋ฒ!
์๋์ ํฌ์คํ ์ ๋ฐ๋ก ์ ๋ฆฌํ์๋ค!
GUI๋ก git ์ฌ์ฉํ๊ธฐ
vscode์ ์ข์ธก ์ธ๋ฒ์งธ์นธ์ ๋ณด๋ฉด ๋ธ๋์น ๋ชจ์์ด ์๋ค. ์ด๊ฒ ๋ฐ๋ก Source Control, ์ฆ Git ๋ถ๋ถ.
๋ฉ์์ง๋ฅผ ์ ๋ ฅํ์ง ์๊ณ ์ปค๋ฐ์ ๋๋ฅด๋ฉด, vscode ํ ์คํธ ํธ์ง๊ธฐ๊ฐ ์ด๋ฆฌ๊ณ , ์ฐ์ธก ์๋จ์ ์ฒดํฌ ๋ฒํผ์ ๋๋ฌ์ฃผ์ด ์ปค๋ฐํ ์ ์๋ค.
Git History ์ต์คํ ์
์ค์นํ๋ฉด ๋ฐ์๊ณ ๋ชจ์์ View History ๋ฒํผ์ด ์๊ธด๋ค!
ํด๋น ์ต์คํ ์ ์ ํตํด GUI๋ฅผ ํตํด git history๋ฅผ ํธํ๊ฒ ํ์ํ ์ ์๋ค.
๋๋ ์
- git์ ํ์์ CLI๋ก ๋ ๋ง์ด ์ฌ์ฉํด ์๊ธฐ์, GUI ํ๊ฒฝ์ด ์คํ๋ ค ์ด์ํ๊ฒ ๋๊ปด์ก๋ค.
VSCode UI๋ก git์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ฐฐ์ฐ๊ฒ ๋์๋ค! - ๊ด๋ จ ๋ด์ฉ์ ๋ ์ฐพ์๋ณด๋ฉด์, ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ค์ ์ ํํ๊ฒ ๋ค์ง ์ ์์๋ค. (.git, ๋ฃจํธ ๋๋ ํ ๋ฆฌ ํ์ธ, etc.)
์์ ๋ด์ฉ์ ๋ํด ๊ฐ์ธ์ ์ผ๋ก ํ์ตํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธฐ๋ก์ ๋๋ค.