- Git์ ํ์ผ์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ํด
์๋๋ ๋ฐ๋์ VSCode ์ค์นํ๊ณ ๋์ ์งํํ์ฌ์ผ ํจ.(๋ชฉ๋ก ํ์ธ ํ์)
- ๋๋จธ์ง๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์น ์๋ฃํจ.
- VSCode์์ ๊ธฐ๋ณธ ํฐ๋ฏธ๋์
Git Bash๋ก ์ค์ ํจ. - ํฐ๋ฏธ๋ ์คํ ๋จ์ถํค :
Ctrl + ~ - ์
ํ
์์ด์ฝ ์ ํ > Settings ๋ฉ๋ด ์ ํ

- ๊ฒ์์
terminal default์ ๋ ฅ >Git Bash๋ชฉ๋ก ์ ํ
- Git ๋ฒ์ ํ์ธ
git --version
- ๊ธฐ๋ณธ ๋ธ๋์น๋ช
์
main์ผ๋ก ์ค์ ํ๊ธฐ(์ด๊ธฐ ์ค์น ์ master๋ก ๋์ด์์)
git config --global init.defaaultBranch main
- Enterํค๋ฅผ ํต์ผ์ํด(๋งฅ, ์๋์ฐ, ๋ฆฌ๋ ์ค๊ฐ Enterํค, ์ค ๋ณ๊ฒฝ์ด ๋ฌ๋ฆฌ ์ฒ๋ฆผ๋จ)
git config --global core.autocrlf true
- ๊น ์์ ๋ด์ญ, ์ฆ commit ์ ๋ฉ์ธ์ง ์์ธ ๋จ๊ธฐ๊ธฐ(VSCode๋ก ์์ฑํ๋๋ก ์ ํ )
git config --global core.editor "code --wait"
- ์ฌ์ฉ์ ์ค์ (์์ด๋, ์ด๋ฉ์ผ : ๊ตฌ๊ธ ๊ณ์ ๊ณผ ๊นํ๋ธ ์์ด๋ ์ถ์ฒ)
git config --global user.name "์์ด๋"
git config --global user.email "๊ตฌ๊ธ ๊ณ์ @gmail.com"
git config --global user.name
git config --global user.email
- ํ์๊ฐ์ (https://gitbub.com) : ๊ตฌ๊ธ๊ณ์
- ์์ ) til_git ์ ์ฅ์ ์์ฑ (์๋ต)
-
์ด๊ธฐ ์ค์ ์ ๋ค์ ๋ด์ฉ์ ํ์๋ก ํ์ธํ๋ค.
-
๊นํ๋ธ ์๊ฒฉ์ฆ๋ช ๋ฑ๋ก์ git push ์งํ๋๋ฉด ์๋์ผ๋ก ๋ก๊ทธ์ธ ํ์ ์ด ์ถ๋ ฅ๋จ.
git init
git status
git add README.md
git add .
- ๊ฐ๋จํ๊ฒ ํ์ค๋ก ๋ฉ๋ชจ ๋จ๊ธฐ๊ธฐ
git commit -m "๋ฉ์ธ์ง"
git commit -m "๊นํ๋ธ ์ฌ์ฉ๋ฒ ์ ๋ฆฌ ์ค"
- ์ฌ๋ฌ์ค ์์ ๋ด์ญ ์์ฑํ๊ธฐ
git commit
[์ปค๋ฐํ์
] ์ปค๋ฐ ๋ฉ์ธ์ง(์ต์
)
์ปค๋ฐ ์์ธ๋ด์ญ
- ์ปค๋ฐ ํ์ : ์ ๋ฌด์ ๋ถ๋ฅ
[feat] ์๋ก์ด ๊ธฐ๋ฅ์ถ๊ฐํจ
[fix] ๋ฒ๊ทธ ์์
[docs] ๋ฌธ์ ์์ (README.md ๋ฑ)
[style] ์ฝ๋์ ์คํ์ผ(๋์ด์ฐ๊ธฐ, ์ธ๋ฏธ์ฝ๋ก ๋ฑ)
[refector] ์ฝ๋ ๋ฆฌํฉํ ๋ง(๊ธฐ๋ฅ๋ณ๊ฒฝ, ์ฝ๋ ์ ๋ฆฌ ๋ฑ)
[test] ํ
์คํธ ์ฝ๋ ์ถ๊ฐํ ๊ฒฝ์ฐ
[core] ๊ธฐํ(๋น๋ ์ค์ , ํจํค์ง ์ค์ ๋ฑ์ ๊ฐ๋ฐํ๊ฒฝ ๋ณ๊ฒฝ ์)
- ์ต์ : 23๋ฒ ์ด์๋ฅผ ํด๊ฒฐํ๊ณ ํ์๊ฐ์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค
[feat] ํ์๊ฐ์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ(#23)
- ์์ธ๋ณด๊ธฐ
git log
- ๊ฐ๋ตํ๊ฒ ๋ณด๊ธฐ
git log --oneline
- ํ๋์ commit์ ์์ธํ๊ฒ ๋ณด๊ธฐ(์ข
๋ฃ ์
qํค๋ณด๋ ๋๋ฅด๊ธฐ)
git show ์ปค๋ฐ์์ด๋
- ๋ฐ๋ก ์ commit ๋ด์ฉ ์์ ํ๊ธฐ
git commit --amend
- ๋ฑ๋กํ๊ธฐ
git remote add ๋ณ๋ช
์ฃผ์
git remote add origin https://github.com/devclarova/til_git.git
- ๋ชฉ๋ก๋ณด๊ธฐ
git remote -v
- ์ญ์ ํ๊ธฐ
git remote remove ๋ณ๋ช
git remote remove aaa
git remote -v
git push -u ๋ณ๋ช
ํ์ฌ๋ธ๋์น
git push -u origin main
git push // ์์ ๋ช
๋ น๊ณผ ๊ฐ์
git add .
git commit
git push
- ๊ฐ๋ฐ์์ ๊ตฌํํด์ผํ๋ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- ํ๋์ ๊ธฐ๋ฅ์ ๊ตฌํ์๋ฃํ์๋ค๋ฉด ์์ค๋ฅผ ๋ฒ์ ์ผ๋ก ๋ณด๊ดํ๋ ๊ฒ
- ๋ค์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋ฉด ์๋ก์ด ์์ค ๋ฒ์ ์ ๋ง๋ค์ด์ ์งํํ๋ ๊ฒ
git config --global init.defaultBranch main
git branch ๋ธ๋์น๋ช
git branch trip
git branch
git switch ๋ธ๋์น๋ช
git switch trip
git branch -d ๋ธ๋์น๋ช
git branch // ๋ชฉ๋ก ํ์ ํ์ธ
git switch main // ๋ค๋ฅธ ๋ธ๋์น๋ก ์ด๋
git branch -d trip // ์ญ์ ์ค์ต
git merge ๋์๋ธ๋์น์ด๋ฆ
git merge trip
git push ๋ฆฌ๋ชจํธ๋ณ์นญ --delete ๋ธ๋์น๋ช
git push origin -d daejun
git push origin --delete jeju
- ์ปค๋ฐ์ ์คํ ํ ๋ฐ๋ก ๋ด์ฉ์ ์์ ํ๋ ๊ฒฝ์ฐ
git commit --amend ์ํฐ
๋ด์ฉ์์ ์งํ ๋ฐ ์ ์ฅ
git log --oneline ์ํฐ
- ํ์ ์์ ๋ฌธ์ ๋ฐ์ ์์ง
- ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ํตํด์
ํด์๊ฐ์์๋ณด๊ธฐ
git log --oneline ์ํฐ
$ git log --oneline
d1c3309 (HEAD -> main, origin/main) [docs] ๋ธ๋์น์ ์ดํด
b69b523 [docs] ๊นํ๋ธ ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐ ์ฐ๊ฒฐ๋ฒ
189efb5 [docs] ๊นํ๋ธ ๋ช
๋ น์ด๋ฅผ ๊ณต๋ถํ๊ณ ์์.
bd3256d [์ปค๋ฐํ์
] ์ปค๋ฐ ํ์ดํ
fea3e3b ๊นํ๋ธ ์ฌ์ฉ๋ฒ ์ ๋ฆฌ์ค
-ํด์๊ฐ ํ์ ํ ์คํ (^๊ธฐํธ๋ ์์์ด๋ผ๋ ๋ป)
git rebase -i ํด์๊ฐ^ ์ํฐ
// ์๋๋ ์๋ ํด๋ณด๊ธฐ
git rebase -i --root
์์ )
git rebase -i bd3256d^
์์ )
pick bd3256d [์ปค๋ฐํ์
] ์ปค๋ฐ ํ์ดํ
pick 189efb5 [docs] ๊นํ๋ธ ๋ช
๋ น์ด๋ฅผ ๊ณต๋ถํ๊ณ ์์.
pick b69b523 [docs] ๊นํ๋ธ ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐ ์ฐ๊ฒฐ๋ฒ
pick d1c3309 [docs] ๋ธ๋์น์ ์ดํด
pick 8459f84 ์งํ์ค
- ์์ฒ๋ผ ๋์จ ๊ณณ์์
pick b69b523์eidt b69b523์ผ๋ก ์์ pick์edit์ผ๋ก ์์ ํ ์ ์ฅ
์์ )
pick bd3256d [์ปค๋ฐํ์
] ์ปค๋ฐ ํ์ดํ
pick 189efb5 [docs] ๊นํ๋ธ ๋ช
๋ น์ด๋ฅผ ๊ณต๋ถํ๊ณ ์์.
pick b69b523 [docs] ๊นํ๋ธ ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐ ์ฐ๊ฒฐ๋ฒ
edit d1c3309 [docs] ๋ธ๋์น์ ์ดํด
pick 8459f84 ์งํ์ค
- ์ค์ ๋ด์ฉ ์์
git commit --amend ์ํฐ
์์ ๋ฐ ์ ์ฅ
- ๋ง๋ฌด๋ฆฌํด์ main์ผ๋ก ์ด๋ํ๊ธฐ
git rebase --continue
git push origin ๋ธ๋์น๋ช
--force
git push origin ๋ธ๋์น๋ช
--force
.์ ๋์ด์ฐ๊ธฐ ํด์ฃผ๋ฉด ํด๋ ์์ฑ์์ด Clone ๋ฉ๋๋ค.
git clone ๊นํ๋ธ์ฃผ์ . ์ํฐ
- ์ด๋ฏธ ํน์ ์ ์ฅ์๋ฅผ ํด๋ก ์ ํ ์ํ์์ ๋ธ๋์น๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ฉด
git fetch ๋ฆฌ๋ชจํธ๋ณ์นญ ๋ธ๋์น๋ช
git checkout ๋ธ๋์น๋ช
git fetch origin jeju ์ํฐ
git checkout jeju ์ํฐ
- Clone๊ณผ ํจ๊ป ๋์์ ๋ธ๋์น ์ง์ ํ์ฌ Clone ํ๊ธฐ
git clone -b ๋ธ๋์น๋ช
--single-branch https์ฃผ์ .
git clone -b jeju --single-branch https~ .
- ํ์ฅ(๊นํ๋ธ ๊ด๋ฆฌ์)๊ณผ ํ์(fork ์งํ)์ผ๋ก ๊ตฌ์ฑ ๊ถ์ฅ
- ํ์ฅ: GitHub ์ ์ฅ์ ํ๋ก์ ํธ ์์ฑ ์งํ
- ํ์ฅ: PC์ ํ๋ก์ ํธ ํด๋ ๋ง๋ฆ
- ํ์ฅ: ํ๋ก์ ํฐ ํด๋์ README.md ํ์ผ ๋ง๋ฆ
- ํ์ฅ: ํ๋ก์ ํธ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์์ฑ ๋ฐ ์ ํ
- ํ์ฅ:
git init์ด๊ธฐํ - ํ์ฅ:
git add remote origin ์ฃผ์ - ํ์ฅ:
git add . - ํ์ฅ:
git commit๋ด์ฉ์ ์์ ๋กญ๊ฒ - ํ์ฅ:
git push origin main - ํ์ฅ: ๊นํ๋ธ ์ฃผ์๋ฅผ ๊ณต์ ํ๋ฉฐ
fork ๋ฐ์ผ์ธ์(๋ฉ์ ์ ๋ Slack ์ถ์ฒ)
- ํ์: ๊นํ๋ธ ์ฃผ์๋ก ์ ๊ทผ ํ
fork๋ฒํผ์ ๋๋ฌ์ ๊นํ๋ธ ๋ณต์ฌ - ํ์: ๋ณธ์ธ์ ๊นํ๋ธ๋ก ์ด๋
- ํ์: ๋ณธ์ธ์
๊นํ๋ธ ์ฃผ์๋ฅผ ๋ฏธ๋ฆฌ ํ์ - ํ์: PC์ ํด๋ ์์ฑ ํ VSCode ๋ฑ๋ก
- ํ์:
git clone ์ฃผ์ .(๋์ด์ฐ๊ธฐ ์กฐ์ฌ)
- ๊ณตํต:
git branch ์ด๋ฆ - ๊ณตํต:
git switch ์ด๋ฆ - ๊ณตํต: ๊ฐ์ ์ญํ ์ ๋ง๊ฒ ์์ ์งํ
- ๊ณตํต:
git add . - ๊ณตํต:
git commit๋ฉ์ธ์ง ์ปจ๋ฒค์ ์งํค๊ธฐ - ๊ณตํต:
git push origin ์ด๋ฆ
- ํ์:
Pull Request์์ฑ - ํ์: ํ์ฅ์๊ฒ PR ๋ณด๋์์ ์๋ฆฌ๊ธฐ (Slack ์ถ์ฒ)
- ํ์: ๋๊ธฐ
- ํ์ฅ: ๋ณธ์ธ์ด ๋ณธ์ธ์๊ฒ
Pull Request์์ฑ
- ํ์ฅ: PR ํ์ธ ๋ฐ ์์ค ํ์ธ ๋ฐ Conflict๊ฐ ๋ฐ์ํ๋ฉด ํ์ ํธ์ถ
- ํ์ฅ: ๊ผญ ์นญ์ฐฌํ๊ธฐ
- ์ ๊ณผ์ ์ ๋ฐ๋ณตํด์ ์์ค๋ฅผ ์ ์ฒด main์ mergeํจ
- ํ์ฅ:
main sync์์ฒญ(๋ฉ์ธ์ง ๋ฑ) - ํ์: ๋ฐ๋์ main์์ sync > update ์งํ
- ํ์:
git switch main - ํ์:
git fetch - ํ์:
git pull - ํ์:
git branch -d ์ด๋ฆ - ํ์:
git push origin --delete ์ด๋ฆ - ํ์:
git branch ์ด๋ฆ - ํ์:
git switch ์ด๋ฆ
-
ํ์ฅ:
git switch main -
ํ์ฅ:
git fetch -
ํ์ฅ:
git pull -
ํ์ฅ: ๊ฐ๋
์์ค ์ค๋ฅ๋๋์ต์ ๋ด์ฉ์ด ์๋์ค๋ ๊ฒฝ์ฐ์กด์ฌ -
ํ์ฅ:
git merge origin/main -
ํ์ฅ:
git branch -d ์ด๋ฆ -
ํ์ฅ:
git push origin --delete ์ด๋ฆ -
ํ์ฅ:
git branch ์ด๋ฆ -
ํ์ฅ:
git switch ์ด๋ฆ



