git revert, git reflog

junghyunhaoยท2021๋…„ 1์›” 29์ผ
0

git

๋ชฉ๋ก ๋ณด๊ธฐ
6/6

git revert ๐Ÿค“

  • revert ์˜ ๋‹จ์–ด ์˜๋ฏธ ์ฒ˜๋Ÿผ undo ํ•œ๋‹ค๋Š” ๊ฐœ๋…์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • git checkout ์ด๋‚˜ git reset ์ฒ˜๋Ÿผ HEAD๋‚˜ branch ref pointer๋ฅผ ์ด์ „์œผ๋กœ ์ด๋™ํ•ด์„œ ๊ทธ ์ดํ›„์˜ ์ปค๋ฐ‹ history๋ฅผ ์ง€์šฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํŠน์ • commit์„ undoํ•˜๋Š” ์ƒˆ๋กœ์šด commit ์„ forward-moving ํ•ด์„œ ๋งŒ๋“ค์–ด ๋‚ธ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐ”๋กœ ์ด์ „์˜ commit์„ revertํ•˜๋ฉด ์ž˜ ๋Œ์•„๊ฐ€๊ณ  ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์„ ๋งŒ๋“ค์ง€๋งŒ n๊ฐœ ์ด์ „์˜ commit์„ revertํ•˜๋ฉด conflict์ด ๋‚˜๋ฏ€๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค.
  • reset๋ณด๋‹ค๋Š” ๋” ์•ˆ์ „ํ•œ ํ˜•ํƒœ์˜ undo ํ˜•ํƒœ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

git revert ์‚ฌ์šฉ์˜ˆ์‹œ ๐Ÿ’œ

  • ๋จผ์ € revert๋ฅผ ์—ฐ์Šตํ•ด ๋ณด๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐœ์˜ ์ปค๋ฐ‹์„ ๋งŒ๋“ ๋‹ค.
  • git revert 9619b8ae2aa7a053167c655bd69a57cb89e05471 ์„ ์ž…๋ ฅํ•ด์„œ ์ฒซ๋ฒˆ์งธ second git revert test commit์„ revert(undo)ํ•ด๋ณธ๋‹ค.

  • git log๋ฅผ ํ†ตํ•ด ๋‚ด์—ญ์„ ๋ณด๋ฉด ์ƒˆ๋กœ์šด ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์ƒ๊ธฐ๊ณ  revert test 2๋ฅผ undoํ•œ ์ƒํƒœ์ž„์„ ์•Œ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ์ฝ”๋“œ ์ƒ์—์„œ๋Š” git reset ce7b3a77585c86313de7ffa2a5e891ae1f636a71 ์ฝ”๋“œ ํ˜•ํƒœ์ง€๋งŒ ์ปค๋ฐ‹์ด๋ ฅ์„ ์ง€์šฐ์ง€ ์•Š๊ณ  ์ด์ „์ƒํƒœ๋กœ ๋Œ์•„๊ฐ„ ํ˜•ํƒœ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.



git reflog ๐Ÿค“

  • ์ „์ฒด ์ปค๋ฐ‹ ๋‚ด์—ญ์„ git log๋ณด๋‹ค ๋” ์ž์„ธํ•˜๊ฒŒ ์•Œ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
  • git log์— ๋‚˜์˜ค์ง€ ์•Š๋Š” ์ด๋ ฅ์œผ๋กœ๋Œ๋ฆด๋•Œ ์œ ์šฉํ•˜๋‹ค.
  • git reset --hard ๋กœ ์‚ญ์ œ๋˜์—ˆ๋˜ ์ปค๋ฐ‹๋‚ด์—ญ๊นŒ์ง€ ์ „์ฒด๋‹ค ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ํ˜น์‹œ๋‚˜ reset์œผ๋กœ ์ปค๋ฐ‹ ๋‚ด์—ญ์ด ๋‹ค ์ง€์›Œ์กŒ๋‹ค ํ•˜๋”๋ผ๋„ ๋‹ค์‹œ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

git reflog ์‚ฌ์šฉ์˜ˆ์‹œ ๐Ÿ’œ

  1. git reset --hard HEAD^ ๋ช…๋ น์–ด๋ฅผ ๋‘๋ฒˆ ์ž…๋ ฅํ•จ์œผ๋กœ์„œ ์ด์ „์— revert ์‹ค์Šต์—์„œ ํ–ˆ๋˜ revertํ–ˆ๋˜ commit๊ณผ second revert test commit์„ ์‚ญ์ œํ–ˆ๋‹ค.

  1. git log๋ฅผ ํ†ตํ•ด์„œ๋„ ์ด๋ฏธ git reset --hard ๋กœ ์ง€์› ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ ฅ์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์—†๋‹ค.

  2. git reflog๋ฅผ ์ž…๋ ฅํ•ด์„œ ์ „์ฒด ์ด๋ ฅ์€ ๋ณด๋ฉด ์•„๋ž˜ ๋ฐ”๋€Œ์—ˆ๋˜ ์ด๋ ฅ๋“ค์„ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

  3. ์ด๋•Œ revertํ–ˆ๋˜ commit์ธ f7f173๋กœ ๋Œ์•„๊ฐ€๋ ค๊ณ  ํ•˜๋ฉด git reset --hard f7f173c ๋กœ ๋Œ์•„๊ฐ€๋ฉด ์ง€์›Œ์ง„ ์ปค๋ฐ‹์ด๋ ฅ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค!!

  4. git log๋กœ ๋‹ค์‹œํ•ด๋ณด๋ฉด ์ปค๋ฐ‹์ด๋ ฅ์ด ๋‹ค์‹œ ๋Œ์•„์˜จ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋Š๋‚€์ 

profile
์ฝ”๋ฆฐ์ด ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๐Ÿ’ป๐Ÿ’›๐Ÿค™๐Ÿผ

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