git

#12 깃(Git) - 커밋 삭제하지 않고 이전 버전으로 되돌리기 (revert)

에이블디 2021. 11. 15. 17:50

안녕하세요! 에이블디 입니다!

 

지난 시간에 커밋을 삭제하고 작업을 되돌리는 방법에 대해 알아보았는데요!

프로젝트를 진행하다 보면 커밋을 삭제하지 않고 작업을 이전 버전으로 되돌리고 싶은 경우도 있을 겁니다.

그래서 이번 시간에는 커밋은 삭제하지 않고 이전 버전으로 되돌리는 방법에 대해 알아보도록 할게요!

 

이전 시간에 abled.txt의 상태가 어떤지 한번 살펴볼까요?

"C1"이라는 커밋 메시지가 있는 커밋으로 작업을 되돌려서 "commit1"이라는 내용까지 저장되어 있을 텐데요, 바로 확인해 봅시다!

"commit1"이라는 내용까지 적혀있는 걸 확인하셨으면 여기에 commit2를 추가로 입력하시고 저장해주세요!

수정한 abled.txt를 "C2"라는 커밋 메시지와 함께 스테이징과 커밋을 함께 해주세요!

명령어가 이젠 익숙하시죠?

자연스럽게 명령어를 치실 수 있게 잘 숙지해 주세요!

$ git commit -am "C2"

깃 로그로 커밋이 잘 되었는지 확인해 볼까요?

"C2"를 커밋 메시지로 가지고 있는 커밋이 최신 커밋인걸 확인할 수 있네요!

 

그럼 방금 커밋한 "C2" 커밋을 취소하고 "C1" 커밋 메시지를 가지고 있는 커밋으로 되돌릴 텐데요, 지난 시간에는 reset 명령어를 사용하여 "C2"커밋 메시지를 가지고 있는 커밋을 삭제하고 작업을 되돌렸지만 이번에는 revert 명령어를 사용하여 "C2" 메시지를 가지고 있는 커밋을 삭제하지 않고 "C1" 메시지를 가지고 있는 커밋으로 되돌아가 보겠습니다.

 

여기서 reset 명령어의 경우에는 되돌아갈 커밋의 해시를 입력했는데요, revert의 경우에는 취소할 커밋의 해시를 입력합니다.

 

그럼 바로 실습에 들어가 볼까요?

 

우리는 "C2" 메시지를 가지고 있는 커밋을 취소할 거니까 "C2" 메시지를 가지고 있는 커밋의 해시를 복사해 줍니다.

그리고 revert 명령어를 사용하여 "C2" 메시지를 가지고 있는 커밋을 취소해 볼게요!

$ git revert 5fed9d96fcdcc7b02caf92f194ab6b508113f9b2

명령이 실행되면 문서 편집기가 실행되면서 커밋 메시지를 입력할 수 있습니다.

어떤 버전을 revert 했는지 맨 위에 나타나 있는 것도 확인할 수 있네요!

저는 커밋 메시지를 추가로 남기지 않고 바로 저장하도록 하겠습니다.

"C2" 메시지를 가지고 있는 커밋을 revert 했다고 알려주네요!

깃 로그도 확인해 볼까요?

"C2" 메시지를 가지고 있는 커밋을 revert 한 새로운 커밋이 생겼네요? 그리고 기존의 "C2" 메시지를 가지고 있는 커밋도 사라지지 않은 것 을 확인할 수 있습니다.

"C2" 커밋을 삭제하지 않는 대신 "C2"에서 변경했던 이력을 취소한 새 커밋을 만든 것인데, 그렇다면 abled.txt의 내용도 작업이 취소되었는지 확인해 볼까요?

"commit2"가 사라지고 "commit1"만 남아있는 걸 볼 수 있네요!

 

오늘은 커밋을 삭제하지 않고 이전 버전의 커밋으로 돌아가는 법을 배워보았습니다!

 

유익하셨다면 하트 하나씩 부탁드리며!

 

그럼 다음 시간에 다시 만나요!