본문 바로가기

Git

[Git] 과거 버전으로 되돌리기 (reset, revert)

728x90
반응형

과거 버전으로 되돌리기


commit을 했는데 이전 버전으로 되돌리고 싶을 경우 reset이나 revert를 사용합니다.

사실 이 방법들을 사용한다고해서 완전히 지워지지도 않습니다. 눈에 보이지 않을 뿐이죠.

왠만하면 되돌리지 않는 것이 바람직하다고 합니다.

그래도 피치못할 경우 사용해야할 때가 있겠지요.

두 방법은 비슷하면서 다릅니다. 먼저 reset을 설명해드리겠습니다.




reset


reset은 타임머신을 타고 과거로 돌아가서 시작하는 것과 같다고 볼 수 있습니다.

커밋 이력이 최신 순으로 5 -> 4 -> 3 -> 2 -> 1 라고 봅시다.

현재는 5이고 3일 때로 돌아가고 싶을 때 reset을 써서 그때로 되돌아갑니다.


$ git reset [3일때의 버전 id] --hard


reset 과 돌아가고싶을 때의 버전id를 적어줍니다. 옵션으로는 hard를 주었는데 soft도 있고 다양합니다.

hard는 가장 편하지만 위험한 방법이예요. 일단은 hard로 제약없이 되돌려 봅시다.



일단 커밋을 5번 해서 로그를 찍어보았습니다. 현재는 메세지 5 버전인 상태입니다.

3으로 돌려보겠습니다.


reset 명령어를 이용해서 3일때의 상태로 돌아갔습니다.

이렇게 reset을 사용하면 원하는 커밋의 위치로 슝~ 돌아갑니다.



revert


자 그러면 revert는 뭐가 다른걸까요?

reset은 아무 찌꺼기(?)도 남기지 않은 채 이전으로 슝 돌아갔습니다.

revert도 reset처럼 이전 상태가 되지만! 돌아가는 행동에 대한 커밋을 남깁니다.



(실습해보려고했는데 뭔가 제대로 안돌아갑니다. 아직 생활코딩 강의에서 제대로 알려주지 않고 넘어간 부분이기 때문에 일단 내용만 이해하고 넘어가겠습니다.)





아래 링크의 카툰을 참고하시면 재밌게 이해하실 수 있습니다!

(https://www.popit.kr/%EA%B0%9C%EB%B0%9C%EB%B0%94%EB%B3%B4%EB%93%A4-git-back-to-the-future/)



참고 : 생활코딩 - 지옥에서 온 Git

728x90
반응형