๐git ๋ช ๋ น์ด ์ ๋ฆฌ
git ์ค์
๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฐ๊ฒฐํ ์ ์ ์ ๋ณด ์ค์
# ๋ฒ์ ํ์คํ ๋ฆฌ๋ฅผ ์๋ณํ ๋ ์ฌ์ฉํ ์ด๋ฆ์ ์ค์
$ git config --global user.name "[firstname lastname]"
# ๊ฐ ๊ธฐ๋ก๊ณผ ์ฐ๊ฒฐํ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ค์
$ git config --global user.email “[valid-email]”
๋์๋ง ๋ณด๊ธฐ
# Git์์ ์ ๊ณตํ๋ ๋ชจ๋ ๋ช
๋ น์ด ๋ณด๊ธฐ
$ git help -all
# ํน์ command์์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ์ต์
๋ณด๊ธฐ
$ git [command] -help
์ธํ ๋ฐ ์ด๊ธฐํ
# ํ์ฌ ๋๋ ํ ๋ฆฌ ๊ธฐ์ค์ผ๋ก Git ์ ์ฅ์ ์์ฑ
$ git init
# URL์ ํตํด ๋ฆฌ๋ชจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ณต์ (clone)
$ git clone [url]
Statge & Commit
# ๋ค์ ์ปค๋ฐ์ ์ํด ํ์ฌ ๋๋ ํ ๋ฆฌ์์ ์์ ๋ ํ์ผ์ ํ์ธ
$ git status
# ๋ค์ ์ปค๋ฐ์ ์ํด ํ์ผ์ ์ถ๊ฐ(์คํ
์ด์ง)ํฉ๋๋ค. (stage)
$ git add [file]
# ์ถ๊ฐํ ํ์ผ์ ์ธ์คํ
์ด์ง(๋ณ๊ฒฝ ์ฌํญ์ ์ ์ง)
$ git reset [file]
# ์คํ
์ด์ง๋์ง ์์ ๋ณ๊ฒฝ ์ฌํญ ๋ณด๊ธฐ
$ git diff
# ์คํ
์ด์งํ์ง๋ง ์ปค๋ฐํ์ง ์์ ๋ณ๊ฒฝ ์ฌํญ ๋ณด๊ธฐ
$ git diff --staged
# ์คํ
์ด์ง๋ ์ฝํ
์ธ ๋ฅผ ๋ฉ์์ง์ ํจ๊ป ์ปค๋ฐ(์ค๋
์ท ์์ฑ)
$ git commit -m “[descriptive message]”
Branch & Merge
# ๋ธ๋์น ๋ชฉ๋ก๋ณด๊ธฐ (* ํ์๋ก ํ์ฌ ์์
์ค์ธ ๋ธ๋์น๋ฅผ ํ์ธ)
$ git branch
# ํ์ฌ ์ปค๋ฐ์์ ์๋ก์ด ๋ธ๋์น๋ฅผ ์์ฑ
$ git branch [branch-name]
# ๋ค๋ฅธ ๋ธ๋์น๋ก ์ ํ
$ git switch [branch-name]
$ git checkout [branch-name]
# ์๋ก์ ๋ธ๋์น๋ฅผ ์์ฑ ํด๋น ๋ธ๋์น๋ก ์ ํ
$ git switch -c [branch-name]
$ git checkout -b [branch-name]
# ํ์ฌ ๋ธ๋์น์ ํน์ ๋ธ๋์น์ ํ์คํ ๋ฆฌ ๋ณํฉ
$ git merge [branch-name]
# ํ์ฌ ๋ธ๋์น์ ๋ชจ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ ๋ณด๊ธฐ
$ git log
๋น๊ต ๋ฐ ๊ฒ์ฌ
# ๋ธ๋์นB์ ์๋ ๋ธ๋์นA์ ๋ชจ๋ ์ปค๋ฐ ํ์คํ ๋ฆฌ๋ณด๊ธฐ
$ git log branchB..branchA
# ํด๋น ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ด๊ธด ๋ชจ๋ ์ปค๋ฐ ํ์ (ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ๋ ํ์)
$ git log --follow [file]
# ๋ธ๋์นA์ ์์ง๋ง ๋ธ๋์นB์ ์๋ ๊ฒ์ ๋ณ๊ฒฝ ๋ด์ฉ(diff)์ ํ์ (branch๊ฐ ์ํ ๋น๊ต)
$ git diff branchB...branchA
๊ณต์ ๋ฐ ์ ๋ฐ์ดํธ
# url์ ํตํด ํน์ ๋ฆฌ๋ชจํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณ์นญ์ผ๋ก ์ถ๊ฐ
$ git remote add [alias] [url]
# ๋ณ์นญ์ผ๋ก ์ถ๊ฐํ ๋ฆฌ๋ชจํธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ ๋ชจ๋ ๋ธ๋์น ๋ฐ ๋ฐ์ดํฐ๋ฅผ ๋ก์ปฌ๋ก ๊ฐ์ ธ์ค๊ธฐ
$ git fetch [alias]
# ๋ฆฌ๋ชจํธ ๋ธ๋์น๋ฅผ ํ์ฌ ์์
์ค์ธ ๋ธ๋์น์ ๋ณํฉํ์ฌ ์ต์ ์ํ๋ก ๋ง๋ค๊ธฐ
$ git merge [alias]/[branch]
# ๋ก์ปฌ ๋ธ๋์น์ ์ปค๋ฐ์ ๋ฆฌ๋ชจํธ ๋ธ๋์น๋ก ์ ์ก
$ git push [alias] [branch]
# ๋ฆฌ๋ชจํธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์๋์ผ๋ก ๋ก์ปฌ ๋ธ๋์น์ ๋ณํฉ
$ git pull
ํ์คํ ๋ฆฌ ์์
# ํน์ ๋ธ๋์น์ ๋ถ๊ธฐ ์ดํ ์ปค๋ฐ์ ํ์ฌ ์์
์ค์ธ ๋ธ๋์น์ ๋ฐ์
$ git rebase [branch]
# ๋์ ์ปค๋ฐ ์ ์ผ๋ก ๋์๊ฐ๋ฉฐ ์คํ
์ด์ง๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ์ง์
$ git reset --hard [commitish]
์์ ์ ์ฅ
# ์์ ํ๊ฑฐ๋ ์คํ
์ด์ง๋ ๋ณ๊ฒฝ์ฌํญ์ ์คํ์ ์์ ์ ์ฅํ๊ณ ํ์ฌ ์์
๋ด์ญ์์ ์ง์
$ git stash
# ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ชฉ๋ก ๋ณด๊ธฐ
$ git stash list
# ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ค์ ํ์ฌ ์์
๋ด์ญ์ ์ ์ฉ
$ git stash apply
# ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ค์ ํ์ฌ ์์
๋ด์ญ์ ์ ์ฉํ๊ณ ์คํ์์ ์ญ์
$ git stash pop
# ์คํ์ ์์ ์ ์ฅ๋ ๋ณ๊ฒฝ์ฌํญ์ ์ญ์
$ git stash drop
'study > git' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Next.js ํ๋ก์ ํธ์์ husky๋ก ์ํ๋ ๊ท์น ๋ง๋ค๊ธฐ(feat. eslint, prettier, lint-staged) (0) | 2024.04.20 |
---|---|
[git] git commit message ์์ฑ๋ฒ (0) | 2023.03.01 |
[git] ์๊ฒฉ ์ ์ฅ์์ ํ์ผ ์ญ์ ํ๊ธฐ (0) | 2023.01.15 |