Skip to content

Latest commit

ย 

History

History
59 lines (50 loc) ยท 3.25 KB

File metadata and controls

59 lines (50 loc) ยท 3.25 KB

๋กœ์ปฌ ์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ

๋กœ์ปฌ์—์„œ ์ปค๋ฐ‹์„ ์œ„ํ•ด ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•œ ์ž‘์—… ๋‚ด์šฉ์„ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

git reset

์œ„ ๋ช…๋ น์–ด๋Š” ์ˆ˜์ •ํ•œ ์ฝ”๋“œ๊ฐ€ ๋ฐ˜์˜๋œ ์Šคํ…Œ์ด์ง• ์˜์—ญ์„ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋ฐ˜์˜ํ•œ ์ปค๋ฐ‹์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ์ˆ˜์ •ํ•œ ๋‚ด์šฉ๋“ค์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ๋ถ„์ด ์ˆ˜์ •ํ•œ ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ์ด๋ฏธ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ๋ฐ˜์˜๋œ ์ˆ˜์ •ํ•œ ํŒŒ์ผ๋“ค ์ค‘์—์„œ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋งŒ ์ปค๋ฐ‹์—์„œ ์ œ๊ฑฐํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒฝ์šฐ, ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

git reset <file>

์ด ๋ช…๋ น์–ด๋Š” ์Šคํ…Œ์ด์ง• ์˜์—ญ์—์„œ ํ•ด๋‹น ํŒŒ์ผ๋งŒ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ์ƒํƒœ ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ git reset ์‚ฌ์šฉ๋ฒ•์— ๊ด€ํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

# ๋จผ์ € index.php ์™€ tutorial.php ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
# ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
$ git add .
# ๋‘ ํŒŒ์ผ์„ ๊ฐ๊ฐ ์ปค๋ฐ‹ํ•ด์•ผํ•˜๋ฏ€๋กœ
# tutorial.php ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์—์„œ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
$ git reset tutorial.php
# index.php ํŒŒ์ผ์„ ๋จผ์ € ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
$ git commit -m "Changed index.php"
# ๋‹ค์Œ์œผ๋กœ tutorial.php ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
$ git add tutorial.php
$ git commit -m "Changed tutorial.php"

๋กœ์ปฌ ์ €์žฅ์†Œ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ๋ฅผ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์ƒํƒœ๋กœ ๋ชจ๋‘ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git reset --hard 

์ด ๋ช…๋ น์–ด๋Š” ์Šคํ…Œ์ด์ง• ์˜์—ญ์„ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋กœ์ปฌ์— ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --hard ๋ชจ๋“œ๋Š” Git์œผ๋กœ ํ•˜์—ฌ๊ธˆ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ๋“ค๋„ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœํ•œ ๋ชจ๋“  ๊ฐœ๋ฐœ ๋‚ด์šฉ์„ ์ดˆ๊ธฐํ™”ํ•ด๋„ ๋˜๋Š”์ง€ ๋ฐ˜๋“œ์‹œ ํ™•์ธ ํ›„ ์‹คํ–‰ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ git reset --hard ์‚ฌ์šฉ์— ๊ด€ํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

# ์—‰๋šฑํ•œ ์‹คํ—˜์„ ์‹œ์ž‘ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
# ๋จผ์ € 'crazy.php' ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
# ๊ทธ๋ฆฌ๊ณ  crazy.php ํŒŒ์ผ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
$ git add crazy.php 
$ git commit -m "Started a crazy dev"
# crazy.php ํŒŒ์ผ์„ ๋‹ค์‹œ ์ˆ˜์ •ํ•˜๊ณ  ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ํŒŒ์ผ๋“ค์„ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
# ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์ •ํ•œ ๋ชจ๋“  ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
$ git add .
$ git commit -m "Continued dev"
# ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋งˆ์นฉ๋‹ˆ๋‹ค.
# ์‹คํ—˜ํ•˜๊ธฐ ์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ˆ˜์ •์‚ฌํ•ญ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
$ git reset --hard HEAD~2

git reset --hard HEAD~2 ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ๋ธŒ๋žœ์น˜์—์„œ ์—ฌ๋Ÿฌ๋ถ„์ด ์ˆ˜์ •ํ•œ ์ด์ „์˜ ์ปค๋ฐ‹๋“ค ์ค‘์— 2๋ฒˆ์งธ ์ปค๋ฐ‹ ํฌ์ธํŠธ ์ƒํƒœ๋กœ ์ด๋™ํ•จ๊ณผ ๋™์‹œ์— ํ•ด๋‹น ์ปค๋ฐ‹๋“ค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์ด ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ตฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ ํŠธ ํžˆ์Šคํ† ๋ฆฌ์—์„œ ์ด์ „์— ์ถ”๊ฐ€๋œ 2๊ฐœ์˜ ์Šค๋ƒ…์ƒท์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

P.s. ๋งŒ์ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ณต์œ  ์ €์žฅ์†Œ๋กœ ์ด๋ฏธ push๋ฅผ ์™„๋ฃŒํ•œ ์ƒํƒœ์—์„œ git reset --hard ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ ˆ๋Œ€ ์‹คํ–‰ํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

โšก