2019๋ 4์ 4์ผ
-
Git์ ์คํ์์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก๋ค. (ex. Linux)
-
Git์ ์ด์ฉํ๋ฉด ํ๋์ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ ์ฌ๋๋ค๊ณผ ํจ๊ป ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.
-
Git์ ํ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฌ๋ช ์ด ๋์์ ๋ณ๋ ฌ์ ์ผ๋ก ๊ฐ๋ฐ ํ ์ ์๊ฒ ํด์ค๋ค.
- ๋ฐ๋ผ์ ํ๋ก์ ํธ ๊ฐ๋ฐ ์๋๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ํด์ค๋ค.
- ํนํ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋ ๋งค์ฐ ์ ์ฉํ๋ค.
-
์์ค ์ฝ๋๋ฅผ USB์ ๋ด์์ ์ฎ๊ธฐ๊ฑฐ๋ ์นดํก, ์ด๋ฉ์ผ ๋ฑ์ ํตํด ๋ค๋ฅธ ์ฌ๋์ ์ปดํจํฐ๋ก ์ฎ๊ธฐ๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๊ณต์ ํด์ผํ๋ค.
- ๊ทธ๋ ๊ฒ ๋๋ฉด A๊ฐ ์์ ํ ๋ด์ญ์ด B๋ผ๋ ์ฌ๋์๊ฒ ์ ๋ฌ๋๋๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋์์ ์์ ํ๊ธฐ ํ๋ค๋ค
-
SVN์ ์ค์ ์๋ฒ๋ก๋ถํฐ ํ์ผ์ ๋ค์ด๋ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค.
-
Git์ ์ค์ ์๋ฒ์ ๊ฐ๋ ์ด ์๋ค.
- ์ค์ ์๋ฒ์ฒ๋ผ ์ฌ์ฉํ๋ ์ปดํจํฐ๊ฐ ์๋ค๊ณ ํ ์ง๋ผ๋, ๊ทธ ์๋ฒ๊ฐ ๋ง๊ฐ์ก์ ๋ ๋ค๋ฅธ ์ปดํจํฐ์์ ์์ค ์ฝ๋๋ฅผ ๋ณต๊ตฌ ํ ์ ์๋ค๋ ํน์ง์ด ์๋ค.
- ์ ์ฒด ๊ฐ๋ฐ ๋ด์ญ์ ๊ฐ ๊ฐ๋ฐ์์ ๋ก์ปฌ ์ ์ฅ์์ ๋ณต์ฌ ํ ์ ์๋ค.
- ๋ํ ๊ฐ๊ฐ์ ์์ ๋ด์ฉ์ ํฉ์น (Merge) ์ ์๋ค.
-
๋ณ๊ฒฝ ์ด๋ ฅ์ด ๋ง์๋ ๋ณ๊ฒฝ๋ ๋ด์ฉ๋ง ์ ์ฅํ์ฌ ํจ์จ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ค.
- ๋ชจ๋ ์ปค๋ฐ์ ๋ํด checksum(HASH) ์ ๋ง๋ค์ด ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ(SHA-1)
- Git์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ ์์คํ ์ ์ค๋ ์ท์ ์ ์ฅํ๋ค.
- ํ์ผ ๋ฐ ์ค๋ ์ต์ ํด์ํ์ฌ ๋ฒ์ ๋ณ๊ฒฝ์ฌํญ์ ๋น ๋ฅด๊ฒ ์ฒดํฌํ๋ค.
- ๋ธ๋์น๋ฅผ ์ด์ฉํด ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์์ ์ ํ ์ ์๋ค.
- ์ฌ๋ฌ๊ฐ์ ๊ธฐ๋ฅ์ ๋ธ๋์น ๋ณ๋ก ๋๋ ์ ๊ฐ๋ฐํ ์ ์๋ค.
- ์ถฉ๋์ด ๋ฐ์ํ์ ๋ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐ ํ ์ ์๋ค.
- ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์์ ํ๊ฒ ์ ์ฅํ์ฌ ์ธ์ ๋ ์ง ์ด์ ์ปค๋ฐ์ผ๋ก ๋์๊ฐ ์ ์๋ค.
-
git clone
github repository url -
git init
( .git ํ์ผ์ ๋ง๋๋ ์ญํ ).git
= ๋ก์ปฌ ์ ์ฅ์GitHub
= ๋ฆฌ๋ชจํธ ์ ์ฅ์
-
์ฐ๋ฆฌ๊ฐ ์์ ํ๋ ๊ณต๊ฐ
- ์์
๋๋ ํ ๋ฆฌ(
working dir
๋๋working tree
) - ํ์ผ(์์ค์ฝ๋) ํธ์ง
- ์์
๋๋ ํ ๋ฆฌ(
commit
- commit = ๊ฒ์์
save point
- ํ์ผ ๋ฐ ํด๋์ ์ถ๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๋ค.
- ์ปค๋ฐ์ ์๊ฐ์์ผ๋ก ์ ์ฅ๋๋ค.
- ํ ๋ฒ ์ปค๋ฐ์ ํ๋ฉด
์์ ํ๊ฒ ์ ์ฅ
๋๋ค. - ์ด๋์? ๋ก์ปฌ์ ์ฅ์ == ๋ด ์ปดํจํฐ์
.git
ํ์ผ .git
ํ์ผ์ด ์ฌ๋ผ์ง๋ ๊ฒฝ์ฐ.git
ํ์ผ์ ์ญ์ ํ ๊ฒฝ์ฐ- ๋ด ์ปดํจํฐ๊ฐ ๋ง๊ฐ์ง ๊ฒฝ์ฐ
- ๋ ์์ ํ๊ฒ ์ ์ฅํ๊ธฐ์ํด ์๊ฒฉ์ ์ฅ์์๋ ์ ์ฅํ๋ค.
- ์๊ฒฉ์ ์ฅ์ = GitHub
- commit = ๊ฒ์์
์ด๋ฏธ์ง ์ถ์ฒ: https://backlog.com/git-tutorial/kr/intro/intro1_3.html
์์ ๋๋ ํ ๋ฆฌ
--add
-->์คํ ์ด์ง
--commit
-->๋ก์ปฌ์ ์ฅ์
--push
-->์๊ฒฉ์ ์ฅ์
-
git status
- git ์ํ ํ์ธ
- ๊นจ๋ํ ์ํ: WD - STAGE - LR ๋ด ํ์ผ์ด ๋ณ๊ฒฝ์ฌํญ ์์ด ๋ชจ๋ ๊ฐ์ ์ํ
-
add
- ํ์ผ์ ์คํ ์ด์ง์ ์ฌ๋ฆฐ๋ค
-
commit
- ์คํ ์ด์ง์ ๋ด์ฉ์ ๊ฐ์ง๊ณ ์ปค๋ฐ ๊ฐ์ฒด๋ฅผ ๋ง๋ ๋ค
-
push
-
๋ก์ปฌ์ ์ฅ์ ํ์ผ์ ์๊ฒฉ์ ์ฅ์์ ์ ๋ก๋ ํ๋ค.
-
๋ก์ปฌ์ ์ฅ์์ ์๊ฒฉ์ ์ฅ์๊ฐ ๋์ผํ ์ํ๊ฐ ๋๋ค.
-
-
fetch
- (์๊ฒฉ์ ์ฅ์์์ ๋ก์ปฌ์ ์ฅ์๋ก)๊ฐ์ ธ์จ๋ค
- ์๊ฒฉ์ ์ฅ์์ ์๋ ๋ชจ๋ ํ์ผ์ ๊ฐ์ ธ์จ๋ค. (
.git
ํฌํจ)
-
pull
- fetch + merge
- ๊ฐ์ ธ์ ๋ณํฉํ๊ธฐ
- ์๊ฒฉ์ ์ฅ์์ ํ์ผ์ ๊ฐ์ ธ์์ LR-STAGE-WD์ ๋ชจ๋ ์ ์ฅํ๋ ๊ฒ
-
git commit --amend
- ๋ง์ง๋ง ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์์ ํ ๋ ์ฌ์ฉ
-
์ฑ ์ถ์ฒ
- Pro GIt: ๋ฐ๋์ ์ฝ์ด ๋ณผ ๊ฒ! ๋์ ๋ง์ด ๋๋ค.
-
ํญ์ ๋ธ๋์น์์ ์์ ํ๋ค!
-
์ปค๋ฐ์ ์๋ฏธ์๋ ์์ ์ ํ์ ๋ ํ๋ค. - ์๋ฏธ์๋ ์ปค๋ฐ์ ํ์ง ์๋๋ค.
-
๋ธ๋์น๋ก ์ด๋ ํ ๋๋
status
๋ฅผ ๊นจ๋ํ ์ํ๋ก ๋ง๋ค๊ณ ์ด๋๋ค.-
add, commit
ํ๊ณ ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋ -
๋๋
stash
๋ผ๋ ์์์ ์ฅ์์ ์ ์ฅํด๋๊ณ ์ด๋- ๋น์ฅ ์ปค๋ฐ ํ ์ ์๋ ์ํฉ์ผ ๋
stash
์ ์ ์ฅํด๋๊ณ ์ด๋ํ๋ค.
- ๋น์ฅ ์ปค๋ฐ ํ ์ ์๋ ์ํฉ์ผ ๋
-
-
git
์ ์ค๋ณต๋ ๋ด์ฉ์ ํ์ผ์ ์ ์ฅํ์ง ์๋๋ค..git
์ ์ค๋ณต๋ ๋ด์ฉ์ ํ์ผ์ ์ ์ฅํ์ง ์๋๋ค. - ๊ทธ๋์ ๋น ๋ฅด๋ค
-
์ปค๋ฐ์ ํญ์ ๋ถ๋ชจ ์ปค๋ฐ์ ๊ฐ์ง๋ค.
- ๋ถ๋ชจ์ปค๋ฐ = HEAD
-
HEAD
๋ ์ง๊ธ ์์ ํ๋ ๋ก์ปฌ ๋ธ๋์น๋ฅผ ๊ฐํค๋ฆฐ๋ค-
ํ์ฌ ์์ ํ๋ ๋ธ๋์น์ ๊ฐ์ฅ ์ ๋ถ๋ถ(๋ง์ง๋ง ์ปค๋ฐ)์ ๊ฐ๋ฆฌํจ๋ค.
-
์ปค๋ฐ์ ๊ฐ๋ฆฌํค๊ฒ ํ ์๋ ์๋ค. (detached HEAD) -- ๊ถ์ฅํ์ง ์์
-
-
๋ธ๋์น๋ ์ฐธ์กฐ๋ณ์์ด๋ค.
- ์ฐธ์กฐ๋ณ์ ๊ทธ ์ด์ ๊ทธ ์ดํ๋ ์๋๋ค.
-
checkout
์HEAD
๋ฅผ ์ฎ๊ธด๋ค. -
reset
์branch
์HEAD
๋ฅผ ๋ชจ๋ ์ฎ๊ธด๋ค. -
rebase
๋ ํ์ฌ ๋ธ๋์น์ ์ปค๋ฐ๋ค์ ๋ค๋ฅธ ๋ธ๋์น๋ก ๋ณต์ฌํด ์ฎ๊ธด๋ค. (ํต์งธ๋ก ์ฎ๊ธด๋ค.)rebase
๋ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋ค์ด๋ธ๋ค.rebase
๋ ํญ์ ์กฐ์ฌํด์ ์จ์ผํ๋ค.
-
merge
๋ ๋ ๋ธ๋์น๋ฅผ ํ๋๋ก ํฉ์น๋ค.-
๊ธฐ์กด ์ปค๋ฐ์ด ๊ทธ๋๋ก ์ ์ง๋ ์ํ๋ก ์๋ค.
rebase
์ฒ๋ผ ์๋ก์ด ์ปค๋ฐ์ ๋ง๋ค์ง ์๋๋ค.rebase
๋ณด๋ค ์์ ํ๋ค.
-
-
ํฐ๋ฏธ๋ ์ถ์ฒ
- ๋งฅ๋ถ์์๋
zsh
- ์๋ฒ์์๋
bash
- ๋งฅ๋ถ์์๋
์ปค๋ฐ
์ ๋ค์ ์ด๋ฆด ์ ์๋ค.๋ธ๋์น
๋์ฐธ์กฐ๋ณ์
์ด๋ค.