git reset ๐Ÿ‘ฉโ€๐Ÿ’ป

Yubin's velog ! ยท2023๋…„ 9์›” 30์ผ

Git 101 ๐Ÿ˜Ž

๋ชฉ๋ก ๋ณด๊ธฐ
8/8
post-thumbnail

HEAD ์˜ ์˜๋ฏธ

  • ๋ณดํ†ต HEAD์ด๋ผ๊ณ  ํ•˜๋ฉด, ์–ด๋–ค ํŠน์ • ์ปค๋ฐ‹์„ ์ง€์นญํ•จ
  • HEAD ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ปค๋ฐ‹์— ๋”ฐ๋ผ working directory๊ฐ€ ๊ตฌ์„ฑ

git reset

  • HEAD๊ฐ€ ๊ณผ๊ฑฐ์˜ ์ปค๋ฐ‹์œผ๋กœ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•  ๋•Œ ์‚ฌ์šฉ (Working Directory๋„ HEAD์— ๋”ฐ๋ผ ๊ตฌ์„ฑ)
  • ํ•˜๊ธฐ ์ผ€์ด์Šค์˜ ๊ฒฝ์šฐ, ํ˜„์žฌ HEAD = Working Directory = ์ปค๋ฐ‹4๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋‚˜ ๊ณผ๊ฑฐ์˜ ์ปค๋ฐ‹์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ git reset ์„ ์‚ฌ์šฉ
    - (ex) git reset --hard ์ปค๋ฐ‹2_ID : HEAD = Working Directory = ์ปค๋ฐ‹2 ๋กœ ๋ณ€๊ฒฝ

MathTool ๋กœ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณธ๋‹ค๋ฉด, ํ˜„์žฌ git์—์„œ HEAD๋Š” ๊ฐ€์žฅ ๋งจ ๋งˆ์ง€๋ง‰์— ํ•œ commit์ด๋‹ค. --> Commit ID:6099
HEAD์˜ ๋””ํดํŠธ๋กœ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ํ•œ ์ปค๋ฐ‹์ด๊ธฐ์— origin/main ์ด๋ผ๋Š” ํ‘œ์‹œ๋„ ๋ถ™์–ด์žˆ๋‹ค.


์ด์ „ ์ปค๋ฐ‹์œผ๋กœ ์ž˜ ๋Œ์•„๊ฐ”๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž!๐ŸŽ‡๐ŸŽˆ

์ตœ์‹  ์ปค๋ฐ‹์ด ๊ณฑ์…ˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ, ์ด์ „์˜ ๊ฐ’์€ ํ•˜๊ธฐ์™€ ๊ฐ™์ด Multiple ํ•จ์ˆ˜๊ฐ€ ์—†๋Š” ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€๋ฉด ์ œ๋Œ€๋กœ reset ์™„๋ฃŒ !

๋งŒ์•ฝ ๋‹ค์‹œ ์›๋ž˜ ์ƒํƒœ๋กœ ๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ฐ€๊ณ  ์‹ถ์€ commit ID์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” git reflog ์„ ํ†ตํ•ด ํŒŒ์•…ํ•˜๊ณ , git reset --hard ๊ฐ€๊ณ ์‹ถ์€_commitID ๋ฅผ ์น˜๋ฉด HEAD๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜์ • ํ›„ log๋ฅผ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์‹œ origin/main์œผ๋กœ HEAD๋กœ ๊ฐ„ ๊ฒƒ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค ! ๐ŸŽ‰

HEAD ์ด๋™ ํ›„ cat calculator.py๋ฅผ ํ†ตํ•ด ๋‚ด์šฉ์„ ํ™•์ธํ•ด๋ณด๋ฉด, multiply ํ•จ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค !


git reset์— ์žˆ๋Š” ์˜ต์…˜์˜ ์˜๋ฏธ๋Š” ๋ฌด์—‡์ผ๊นŒ?

HEAD๊ฐ€ ๊ณผ๊ฑฐ์˜ ์ปค๋ฐ‹์„ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋˜๋Š” ๊ฒฐ๊ณผ๋Š” git reset์—์„œ ์–ด๋А ์˜ต์…˜์„ ์“ฐ๋“  ํ•ญ์ƒ ๊ฐ™์ง€๋งŒ, working directory์˜ ๋‚ด๋ถ€๋„ ๊ณผ๊ฑฐ ์ปค๋ฐ‹์˜ ๋ชจ์Šต์ฒ˜๋Ÿผ ๋ฐ”๋€Œ๋Š” ๋ถ€๋ถ„์€ ์–ด๋А ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค !

HEAD์™€ ๊ฐ™์ด, Working Directory๋„ ๊ณผ๊ฑฐ ์ปค๋ฐ‹์˜ ๋ชจ์Šต๊ณผ ๊ฐ™์ด ๊ฐ™์ด ๋ฐ”๋€Œ๊ฒŒ ํ•˜๋Š” ๋ถ€๋ถ„์€ --hard ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ --soft,--mixed ์˜ต์…˜์„ ์“ฐ๋ฉด Working Directory์˜ ๋ชจ์Šต์€ ๊ฐ๊ฐ ๋‹ค๋ฅด๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด hard / mixed / soft ์˜ต์…˜์€ Git์˜ ์„ธ๊ฐ€์ง€ ์˜์—ญ (Working Directory / Staging area / repository) ์ค‘ ๋ช‡๊ฐœ์˜ ์˜์—ญ์„ ๋ฆฌ์…‹ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • soft : 1 --> staging area์™€ working directory์— ๋ณ€ํ™”๊ฐ€ ์—†์ด ๊ทธ๋Œ€๋กœ !
  • mixed: 1 & 2
  • hard : 1 & 2 & 3

์‚ฌ์‹ค Git์„ ์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ reset ์˜ต์…˜์„ ์“ฐ๋Š” ์ด์œ ๋ฅผ ์ •ํ™•ํžˆ ์˜จ๋ชธ์œผ๋กœ ๊นจ๋‹ซ์ง€๋Š” ๋ชปํ•˜๊ฒ ๋‹ค. ์ด๋ก ์ƒ์œผ๋กœ๋Š” ์ฐจ์ด์ ์„ ์•Œ๊ฒ ์ง€๋งŒ, ์–ธ์ œ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์˜ต์…˜์„ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์‹ค์งˆ์ ์ธ ์ด์œ ๋Š” ์•„์ง ๋”ฑ ์•Œ์ง€ ๋ชปํ•˜๊ฒ ๋‹ค. ์กฐ๊ธˆ ๋” ๊นŠ๊ฒŒ ์œ ์˜ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค ! ๐ŸŽ„

์ผ๋‹จ ์ง€๊ธˆ๊นŒ์ง€ ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ถ€๋ถ„์„ ํ‘œ๋กœ ๋„์‹ํ™”ํ•˜์˜€๋‹ค. ์‹ค์ œ๋กœ ๋” ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ณด์™„ํ•ด๋‚˜๊ฐ€์•ผ๊ฒ ๋‹ค.

  • ์›Œํ‚น ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋ฐ”๋€Œ๋Š”์ง€ ์•„๋‹Œ์ง€๊ฐ€ ์ค‘์ ์„ ๋‘๋Š” ๋ถ€๋ถ„์ธ ๊ฒƒ ๊ฐ™๋‹ค !


soft


mixed

0๊ฐœ์˜ ๋Œ“๊ธ€