โ Git & Github
Git : ๋ฒ์ ๊ด๋ฆฌ ์์คํ
๋ฒ์ ์ด๋ ์ ์๋ฏธํ ๋ณํ๊ฐ ๊ฒฐ๊ณผ๋ฌผ๋ก ๋์จ๊ฒ์ด๋ค.
ํ๋ก๊ทธ๋๋ฐ์ ๋ณดํต ์ฌ๋ฌ ์ฌ๋๊ณผ ์์ ํ๋ค.
์ฆ, ํ๋์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๊ณผ์ ์์ ํ์ ์ด ํ์ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด, ํ๋์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ๊ณผ์ ์์ ๋๋๋ฆฌ๋ ๊ณผ์ ๋ ํ์ํ๋ค.
์ด๋ ๋ฐฑ์ ์ด ํ์๋ผ๋ ๊ฒ์ด๋ค.
ํ๋์ ๋ฒ์ ์ด ๊ด๋ฆฌ๋๋ ๊ณผ์ ์์ ํจ์จ์ ์ธ ๋ฐฑ์ ์ด ํ์ํ๋ค.
ํฌ๊ฒ ์ ๋ฆฌํ๋ฉด
1. ํ์ ํ๊ธฐ
2. ๋๋๋ฆฌ๊ธฐ
3. ํจ์จ์ ์ผ๋ก ๋ฐฑ์ ํ๊ธฐ
์ด 3๊ฐ์ ๊ด๋ฆฌ๋ฅผ ๋์์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก Git
โ ๋ฒ์ ์ด ๋ง๋ค์ด์ง๋ ๋๊ฐ์ ๋จ๊ณ
- 1๋จ๊ณ : Woring Directory -> Staging Area
- git add '๋์์ด๋ฆ'
- 2๋จ๊ณ : Staging Area -> Directory
- git commit ( ํ๋์ ๋ฒ์ )
โ ๋ฒ์ ์ด ๋๊ธฐ๊น์ง ๊ฑฐ์ณ๊ฐ๋ ์ธ๊ฐ์ ๊ณต๊ฐ
1. Working Directory ( ์์ ๊ณต๊ฐ )
Q. WorkingDirectory์ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด์ผ ํ ๊น ?
A. ๋ณ๊ฒฝ์ฌํญ๋ค ์ค ๋ค์ ๋ฒ์ ์ด ๋ ํ์ผ๋ค์ ์ ๋ณํด์ ์ ๋ณ๋ ํ์ผ๋ค์ ๋ฒ์ ์ผ๋ก ๋ง๋ค์
2. Staging Area
- ๋ฒ์ ์ด ๋ ํ๋ณด๋ค์ด ์ฌ๋ผ์ค๋ ๊ณต๊ฐ
- Working Directory์์ ์ ๋ณ
3. Repository
โ ๋ฒ์ ๊ด๋ฆฌ ์์
๐ git init : ์ด ํด๋์์๋ถํฐ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ ( ์ด๊ธฐํ ์์ )
์ ๋ ฅ ๊ฒฐ๊ณผ
Initialized empty Git repository in /Users/leesangdo/Desktop/git_tutorial/.git/
“์ด ํด๋์์๋ถํฐ ๊น ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์์ํ ๊ฑฐ์์”
๐ git status : ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋๊ณ ์๋ ํ์ฌ ํด๋์ ์ํ ํ์ธ
์ ๋ ฅ ๊ฒฐ๊ณผ
โ Working Directory -> Staging Area
๐ git add ํ์ผ์ด๋ฆ
์ ๋ ฅ ๊ฒฐ๊ณผ : ๋ฑํ ์๋ฌด๊ฒ๋ ๋จ์ง ์์ ๊ฒ ( = ์ ์ฎ๊ฒจ์ก๋ค. )
git status๋ก ํ์ธํ๋ฉด
๐ git -rm --cached ํ์ผ์ด๋ฆ : staging ๋๋ ๊ฒ์ unstageํ๋ ์์
๐ก ์ฌ๋ฌ ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ๋ฒ์ ์คํ ์ด์ง ์์ญ์์ ์ ๊ฑฐํ๋ ค๋ฉด -r(recursive)์ต์ ์ ์ฌ์ฉํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด, 'test'๋๋ ํฐ๋ฆฌ์ ๊ทธ ์์ ๋ชจ๋ ํ์ผ์ ์คํ ์ด์ง ์์ญ์์ ์ ๊ฑฐํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์คํํ๋ค.
๐ git rm --cached -r test
- unstage ์์ ์ด ์ ๋ ๊ฒฐ๊ณผ = ๋ค์ Untracked files:๋ก ๋์๊ฐ๋ค.
๐ git add . : ํ์ฌ ์ํน๋๋ ํ ๋ฆฌ์ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ ํ๋ฒ์ stage์ ๋ค ์ฎ๊ธฐ๋ ๊ฒ
( . ์๋ฏธ : ํ์ฌ ์์ ํ์ผ์ ๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ Stage์ ๋ค ์ฎ๊ฒจ๋ผ )
์ ๋ ฅ ๊ฒฐ๊ณผ ( = Programmers์ testํ์ผ ๋๋ค Stage์ ์ฌ๋ผ๊ฐ๋ค )
โ Stage Area์ ์ฌ๋ผ๊ฐ ํ์ผ๋ค์ ๋ฒ์ ์์ฑ
๐ git commit -m "์ปค๋ฐ๋ฉ์ธ์ง ์์ฑ"
์ปค๋ฐ๋ฉ์ธ์ง = ์ด๋ค ์ ์๋ฏธํ ๋ณํ๋ฅผ ๋ด์๋์ง ๊ฐ๋ตํ๊ฒ ์ ๋ ฅ
๐ git log : ๊ทธ ๋์์ ๋ชจ๋ ์ปค๋ฐ ๋ด์ญ ํ์ธ
๐ ์ปค๋ฐ ํ์, ํ์ผ์ ์ฝ๋๋ฅผ ์์ /์ ์ฅํ๋ค๋ฉด Working Directory์ ๋ด์ฉ์ด ๋ฐ๋๋ค.
์ฌ๊ธฐ์ git status๋ฅผ ์ฐ์ผ๋ฉด ํ์ผ์ด ๋ณ๊ฒฝ๋์๋ค๊ณ ํ์ธํ ์ ์๋ค.
์ ๋ ฅ ๊ฒฐ๊ณผ
"modified๋์์ต๋๋ค" = "์์ ์ด ๋์์ต๋๋ค"
๐ ์ ๊ทธ๋ผ ์์ ๋ ํ์ผ์ ๋ ๋ฒ์ ์ผ๋ก ์ฌ๋ ค์ผํ๋
git add ํ์ผ๋ช
git commit -m "์ปค๋ฐ๋ฉ์ธ์ง"
๐ก git commit ์ ๋ ฅํ๋ค๋ฉด ๋ ์์ธํ๊ฒ ์ปค๋ฐ๋ฉ์ธ์ง๋ฅผ ์ธ ์ ์๋ ๊ณต๊ฐ์ผ๋ก ์ด๋ํ๋ค.
๐ก git commit -am "์ปค๋ฐ๋ฉ์ธ์ง" : add + commit ๋์์ ( ํ๋ฒ์ด๋ผ๋ ์ปค๋ฐํ ํ์ผ์ ํ์ ํด์ )
git log
๋ฑ์ ํตํด ์ปค๋ฐํ๊ณ ํ์ธ
์๋ฌธ์
โ๏ธ git commit ๋ช ๋ น์ด๋ฅผ ํตํด ๋ฒ์ ์ ๋ง๋ค๋ฉด ๋ด ์ปดํจํฐ ์ ์ ์ฅ์(local ์ ์ฅ์)์๋ง ์ ์ฅ๋๋๋ฐ,
์ด๋ป๊ฒ ๋ค๋ฅธ ์ฌ๋๊ณผ ์๊ฒฉ์ผ๋ก ํ์ ์ ํ ์ ์๋์ ?
A. ๊ฐ์์ ์ปดํจํฐ์๋ง ์กด์ฌํ๋ ๋ฒ์ (local์์ ๋ง๋ค์ด์ค ๋ฒ์ )์ ์ ์ฅ/๊ด๋ฆฌํด์ฃผ๋ ์๋น์ค๊ฐ GitHub
โ๏ธ ์ฉ์ด์ ๋ฆฌ
GitHub์ ์ฝ๋๋ฅผ ์ ๋ก๋ ํ๋ค = GitHub์ " push "ํ๋ค.
push : ๋ชจ๋ ๋ฒ์ /๋ด์ญ/๊ธฐ๋ก์ด ํ๋ฒ์ ์ ์ฅ๋๋ค.
โ๏ธ Local์ ์ฅ์ & ์๊ฒฉ์ ์ฅ์ ?
โ Github์ Pushํ๊ธฐ
1. Github์์ Repo ์์ฑ
2. ๋ง๋ค์ด์ง Repo์์ ์ค๊ฐ ์ฝ๋๋ฅผ ํ์ธํ์ฌ ํฐ๋ฏธ๋์ ์ ๋ ฅํ๋ค. ( ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ )
์ฒซ๋ฒ์งธ ์ค ์ฝ๋ : ์๊ฒฉ์ ์ฅ์์ Local์ ์ฅ์ ์ฐ๊ฒฐ
์ธ๋ฒ์งธ ์ค ์ฝ๋ : Push
๋์ค์ ์ฝ๋๋ฅผ ์ ๋ ฅํ๊ณ ์ฌ์ฉ์์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ค.
์ฌ์ฉ์์ด๋ฆ : github.com ๋ค์ ํด๋นํ๋ ๋ถ๋ถ
๋น๋ฐ๋ฒํธ : ํ ํฐ ์์ฑํด์ ๋ถ์ฌ๋ฃ๊ธฐ
3. Repo ์์ฑ์๋ฃ
์ดํ ์ธ๋ฒ์งธ๋ก ์ฌ๋ฆด ํ์ผ์ ์์ ํ๊ณ git status > ๋ณ๊ฒฝ์ฌํญ ํ์ธ -> git commit -am "third commit"
git log๋ก ํ์ธํ ํ git push ํ๋ฉด github์์ ์ธ๋ฒ์งธ ์ปค๋ฐ์ด ์๋ฃ๋๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ ์ถ์ฒ
https://www.inflearn.com/course/%EB%B9%A0%EB%A5%B4%EA%B2%8C-git
๋น ๋ฅด๊ฒ git - ํต์ฌ๋ง ๊ณจ๋ผ ๋ฐฐ์ฐ๋ Git/Github ๊ฐ์ - ์ธํ๋ฐ
๊ฐ๋ฐ์์๊ฒ ๋ฒ์ ๊ด๋ฆฌ๋ ์ด์ ํ์ ์ง์์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ๊ธฐ์ด์ ์ธ git ๋ช ๋ น์ด์ Github ํ์๊ฐ์ ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ Git๊ณผ Github๋ฅผ ๋ฐฐ์๋ณด๋๋ก ํฉ์๋ค :), ๐๐ปโ ๋์ฒด git์ด ๋ญ๊ธธ๋ ๋๋ถ๋ถ์ ๊ฐ
www.inflearn.com
'๐ป > Git&Github' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Git/Github] ํ์ ์๋๋ฆฌ์ค (0) | 2024.03.11 |
---|---|
[Git/Github] Github ํ์ : remote / push / pull / fetch / clone (0) | 2024.03.10 |
[Git/Github] diff & revert (0) | 2024.03.10 |
[Git/Github] ๋ฒ์ ์ ๋๋๋ฆฌ๊ณ ๋๋๊ธฐ : reset / branch (0) | 2024.03.10 |