GIT ๋ช…๋ น์–ด

์„ค์ • ๋ฐ ์„ค์ • ๐Ÿ’ก

๐Ÿ“ ๋ชจ๋“  ์ปค๋ฐ‹์—์„œ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์‚ฌ์šฉํ•  ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

git config --global user.name "your name"
git config --global user.email "your email address"

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ ๐Ÿ’ก

๐Ÿ“ ์ƒˆ๋กœ์šด ๋กœ์ปฌ ์ €์žฅ์†Œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

git init "project-name"

๐Ÿ“ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์™€ ๋ฒ„์ „ ์ด๋ ฅ์„ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.

git clone "git url"

๋ณ€๊ฒฝ ๋ฐ ์Šคํ…Œ์ด์ง• ๐Ÿ’ก

๐Ÿ“ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ˆ˜์ •๋œ ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

git status

๐Ÿ“ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

git add "file"

๐Ÿ“ ๋ชจ๋“  ์ˆ˜์ •๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

git add .

๐Ÿ“ ์„ค๋ช…์ ์ธ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์Šคํ…Œ์ด์ง•๋œ ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

git commit -m"commit your message"

์ปค๋ฐ‹ ๊ด€๋ฆฌ ๐Ÿ’ก

๐Ÿ“ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

git commit --amend

๐Ÿ“ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

git commit --amend --no-edit

๐Ÿ“ ์••์ถ•๋œ ์ปค๋ฐ‹ ์ด๋ ฅ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

git log --oneline

๐Ÿ“ ์ปค๋ฐ‹ ์ด๋ ฅ์„ ๊ทธ๋ž˜ํ”ฝ ํ˜•์‹์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

git log --graph

๐Ÿ“ ๋‹ค๋ฅธ ๊ธฐ๋ณธ ํŒ ์œ„์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

git rebase "your branch"

๐Ÿ“ ์ง€์ •๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ทจ์†Œํ•˜๋Š” ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

git revert "your commit"

๋ธŒ๋žœ์น˜ ๋ฐ ๋ณ‘ํ•ฉ ๐Ÿ’ก

๐Ÿ“ ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋ชจ๋“  ๋ธŒ๋žœ์น˜๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

git branch

๐Ÿ“ ์ƒˆ๋กœ์šด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

git branch "branch name"

๐Ÿ“ ์ง€์ •๋œ ๋ธŒ๋žœ์น˜๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

git checkout "branch name"

๐Ÿ“ ์ง€์ •๋œ ๋ธŒ๋žœ์น˜์˜ ์ด๋ ฅ์„ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

git merge "branch name"

๐Ÿ“ ์ง€์ •๋œ ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

git branch -d "branch name"

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ๋ฐ ์—…๋ฐ์ดํŠธ ๐Ÿ’ก

๐Ÿ“ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜ ์ปค๋ฐ‹์„ ์›๊ฒฉ ์ €์žฅ์†Œ ๋ธŒ๋žœ์น˜์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

git push "alias" "branch name"

๐Ÿ“ ์›๊ฒฉ ๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ˜„์žฌ ๋กœ์ปฌ ๋ธŒ๋žœ์น˜์— ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

git pull

๊ฒ€์‚ฌ ๋ฐ ๋น„๊ต ๐Ÿ’ก

๐Ÿ“ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์˜ ๋ฒ„์ „ ์ด๋ ฅ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

git log"

๐Ÿ“ ํŠน์ • ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

git log --follow "file name"

๐Ÿ“ ๋‘ ๋ธŒ๋žœ์น˜ ์‚ฌ์ด์˜ ์ฝ˜ํ…์ธ  ์ฐจ์ด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

git diff "branchB"

ํŠน์ • ์ปค๋ฐ‹ ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿ’ก

๐Ÿ“ ์ง€์ •๋œ ์ปค๋ฐ‹์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์ฝ˜ํ…์ธ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

git show "commit"

๐Ÿ“ ์ง€์ •๋œ ์ปค๋ฐ‹์—์„œ ์†Œ๊ฐœ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

git cherry-pick "commit"

๐Ÿ“ ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ํŒ์„ ์ง€์ •๋œ ์ปค๋ฐ‹ ์œ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

git reset --soft "commit"

๐Ÿ“ ํ˜„์žฌ ๋ธŒ๋žœ์น˜ ํŒ์„ ์ง€์ •๋œ ์ปค๋ฐ‹์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

git reset "commit"

๐Ÿ“ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •๋œ ์ปค๋ฐ‹์œผ๋กœ ์žฌ์„ค์ •ํ•˜๊ณ  ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

git reset --hard "commit"

๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋˜๋Œ๋ฆฌ๊ธฐ ๐Ÿ’ก

๐Ÿ“ ์ง€์ •๋œ ์ปค๋ฐ‹ ์ดํ›„์˜ ๋ชจ๋“  ์ปค๋ฐ‹์„ ์ทจ์†Œํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋กœ์ปฌ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

git reset "commit"

๐Ÿ“ ์ง€์ •๋œ ์ปค๋ฐ‹ ์ดํ›„์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ง€์›๋‹ˆ๋‹ค.

git reset --hard "commit"