Git

10. 버전 관리 - 되돌리기(revert)

ewok 2022. 11. 24. 00:25

때로는 버전을 삭제하기보다는 기록을 남기면서 이전 버전으로 가는 것이 필요하다.

이때 되돌리기를 이용하여 삭제라는 목적과 보존이라는 목적을 동시에 달성할 수 있다.

 

현재 Message 1과 2 두 개의 버전만 존재해서 두 개를 추가해보겠다.

 

 

hello1.txt에 R3와 R4를 입력해줬다.

 

reset에 R3의 커밋 id를 적으면 R3의 버전으로 간다.

하지만 되돌리기를 통해 R3로 가고 싶다면 R4를 revert 해줘야 한다. 따라서 R4의 커밋 id가 필요하다.

 

커밋 메시지를 입력하는 것처럼 리버트의 이유 등을 작성할 수 있다.

 

 

기존의 R4는 삭제되지 않고 남아있다.

 

이것은 해당 커밋 ID의 변화를 취소했다는 의미이다. 따라서 현재 R3의 상태이다.

 

 

 

 

 

현재 R4가 최신인 상태로 있다고 생각해보자 

(로그가 다 보이지 않는다면 space 바를 누르면 다 나타난다)

 

 

이번에는 R4를 revert 하는 것이 아니라 Message 1으로 돌아가고 싶다면

Message 2를 revert하면 될 것이라고 생각할 수 있다. 하지만 이렇게 하면 충돌이 발생한다.

우선 R4를 revert하고 다음으로 R3, 그다음 Message 2를 revert 해야 한다.

 

정리하면 revert는 역순으로 해야 한다.

 

이렇게 해야하는 이유는 revert는 revert 하는 버전의 변화만을 되돌리기 때문이다. 다시 말해 Message 2를 revert 하면 Message 2 이후의 모든 변화(Message 2, R3, R4)를 되돌리는 것이 아니라 Message 2를 할 때의 변화만을 되돌리기 때문이다.