본문 바로가기

Git, Version control/SourceTree

[소스트리 사용법] 버전 취소하기(revert, reverse)

반응형

깃을 커밋하다보면 가장 마지막에 커밋한 버전을 취소하고 싶을 때가 있다.

 

이 때, reset을 사용할 수도 있지만 reset을 하게되면 소스트리에 있던 모든 커밋들과 staging area에 있던 내용들이 사라지고, 그 간의 기록들이 모두 사라지는 꼴이기 때문에 위험할 수 있다. 그리고 무엇보다도 취소해서 되돌아갔다는 표식이 없기때문에 다소 권장하지 않는다.

참조 : 

https://powerofsummary.tistory.com/22

 

[소스트리 사용법] 버전 되돌리기(reset)

만일 현재 상태가 delete 7버전이고 그 내용이 위와같다고 가정하자. 여기서 delete 6버전으로 되돌리고 싶다면?? (참고로 Hard는 가장 위험한 되돌리기이다. 되돌리면서 모든 내용을 삭제하고 staging area의..

powerofsummary.tistory.com

그렇다면 버전을 되돌아가겠다는 기록도 남기고 버전을 되돌리는 방법이 뭐가 있을까??

 

git revert라는 기능을 알아보자.

 

현재상태 : 

현재 파일 상태 (m7)
현재 상태

 

 

이제 최신커밋을 삭제하려면 다음과 같이 한다.

커밋 되돌리기 클릭

 

결과 : 

m7커밋 revert 정보가 기록됨.
최신 업데이트 버전이 취소됨

 

 

만약 여기서 M5버전으로 되돌아가고 싶다면??

 

위 사진과 같이 M5바로 이후 버전에서 revert를 하면 충돌 경고가 뜬다. 이 쯤에서 revert 개념을 다시 이해해보도록 하자.

 

reset : 그 당시 버전으로 되돌아 가겠다는 명령어.

revert : 그 버전으로 되돌아 가겠다는 명령어가 아니다. 최신에 update한것을 취소하겠다는 개념. 즉, 가장 최근것만 revert만 가능하므로 과거의 버전에 대해서 revert를 하면 그 이후에 생성된 새로운 버전들 때문에 충돌이 감지된다. 그렇다면 해결법은??

 

최신 버전들을 모두 역순으로 revert 해서 M5 버전까지 내려가야 한다.

 

반응형