Etc. Command

๋„์›€๋ง ๋ณด๊ธฐ

help ๋ช…๋ น์–ด๋กœ ๊ฐ ๋ช…๋ น์–ด ๋ฐ ์˜ต์…˜์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Œ

# Git์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ๋ช…๋ น์–ด ๋ณด๊ธฐ
$ git help -all
# ํŠน์ • command์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์˜ต์…˜ ๋ณด๊ธฐ
$ git [command] -help

์„ธํŒ… ๋ฐ ์ดˆ๊ธฐํ™”

Repository๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ ์กด์žฌํ•˜๋Š” Repository๋ฅผ clone

# ํ˜„์žฌ directory๋ฅผ ๊ธฐ์ค€์œผ๋กœ Git ์ €์žฅ์†Œ๊ฐ€ ์ƒ์„ฑ
$ git init
# URL์„ ํ†ตํ•ด remote Repository๋ฅผ local Repository์— ๋ณต์ œ
$ git clone [url]

Stage & Commit

stage ์˜์—ญ์„ ์ด์šฉํ•˜์—ฌ commitํ•  ์ˆ˜ ์žˆ์Œ

# ๋‹ค์Œ commit์„ ์œ„ํ•ด ํ˜„์žฌ directory์—์„œ ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
$ git status
# ๋‹ค์Œ commit์„ ์œ„ํ•ด ํŒŒ์ผ์„ ์ถ”๊ฐ€ (stage)
$ git add [file]
# ์ถ”๊ฐ€ํ•œ ํŒŒ์ผ์„ unstaging: ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์œ ์ง€๋จ
$ git reset [file]
# stage๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์คŒ
$ git diff
# stageํ–ˆ์ง€๋งŒ commitํ•˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์คŒ
$ git diff --staged
# stage๋œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ commit (snapshot ์ƒ์„ฑ)
$ git commit -m โ€œ[descriptive message]โ€

๋น„๊ต ๋ฐ ๊ฒ€์‚ฌ

๋กœ๊ทธ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Œ

# ๋ธŒ๋žœ์น˜B์— ์—†๋Š” ๋ธŒ๋žœ์น˜A์˜ ๋ชจ๋“  commit ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋ณด์—ฌ์คŒ
$ git log branchB..branchA
# ํ•ด๋‹น ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋‹ด๊ธด ๋ชจ๋“  commit์„ ํ‘œ์‹œ (ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ๋„ ํ‘œ์‹œ)
$ git log --follow [file]
# ๋ธŒ๋žœ์น˜A์— ์žˆ์ง€๋งŒ ๋ธŒ๋žœ์น˜B์— ์—†๋Š” ๊ฒƒ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ(diff)์„ ํ‘œ์‹œ (branch๊ฐ„ ์ƒํƒœ ๋น„๊ต)
$ git diff branchB...branchA

๊ณต์œ  ๋ฐ ์—…๋ฐ์ดํŠธ

ํŠน์ • Repository์˜ ์—…๋ฐ์ดํŠธ ์‚ฌํ•ญ์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ local Repository๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Œ

# url์„ ํ†ตํ•ด ํŠน์ • remote Repository๋ฅผ ๋ณ„์นญ์œผ๋กœ ์ถ”๊ฐ€
$ git remote add [alias] [url]
# ๋ณ„์นญ์œผ๋กœ ์ถ”๊ฐ€ํ•œ remote Repository์— ์žˆ๋Š” ๋ชจ๋“  ๋ธŒ๋žœ์น˜ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ local๋กœ ๊ฐ€์ ธ์˜ด
$ git fetch [alias]
# remote ๋ธŒ๋žœ์น˜๋ฅผ ํ˜„์žฌ ์ž‘์—…์ค‘์ธ ๋ธŒ๋žœ์น˜์™€ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ตœ์‹  ์ƒํƒœ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
$ git merge [alias]/[branch]
# local ๋ธŒ๋žœ์น˜์˜ commit์„ remote ๋ธŒ๋žœ์น˜๋กœ ์ „์†ก
$ git push [alias] [branch]
# remote Repository์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€ ์ž๋™์œผ๋กœ local ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ
$ git pull

ํžˆ์Šคํ† ๋ฆฌ ์ˆ˜์ •

๋ธŒ๋žœ์น˜ ๋˜๋Š” commit์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ commit ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์Œ

# ํŠน์ • ๋ธŒ๋žœ์น˜์˜ ๋ถ„๊ธฐ ์ดํ›„ commit์„ ํ˜„์žฌ ์ž‘์—…์ค‘์ธ ๋ธŒ๋žœ์น˜์— ๋ฐ˜์˜
$ git rebase [branch]
# ๋“์ • commit ์ „์œผ๋กœ ๋Œ์•„๊ฐ€๋ฉฐ stage๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ชจ๋‘ ์ง€์›€
$ git reset --hard [commitish]

์ž„์‹œ ์ €์žฅ

๋ธŒ๋žœ์น˜๋ฅผ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ๋˜์—ˆ๊ฑฐ๋‚˜ ์ถ”์  ์ค‘์ธ ํŒŒ์ผ์„ ์ž„์‹œ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ

# ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ stage๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์Šคํƒ์— ์ž„์‹œ ์ €์žฅํ•˜๊ณ  ํ˜„์žฌ ์ž‘์—… ๋‚ด์—ญ์—์„œ ์ง€์›€
$ git stash
# ์Šคํƒ์— ์ž„์‹œ ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์˜ ๋ชฉ๋ก์„ ๋ณด์—ฌ์คŒ
$ git stash list
# ์Šคํƒ์— ์ž„์‹œ ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋‹ค์‹œ ํ˜„์žฌ ์ž‘์—… ๋‚ด์—ญ์— ์ ์šฉ
$ git stash apply
# ์Šคํƒ์— ์ž„์‹œ ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋‹ค์‹œ ํ˜„์žฌ ์ž‘์—… ๋‚ด์—ญ์— ์ ์šฉํ•˜๊ณ  ์Šคํƒ์—์„œ ์‚ญ์ œ
$ git stash pop
# ์Šคํƒ์— ์ž„์‹œ ์ €์žฅ๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์‚ญ์ œ
$ git stash drop

Last updated