SourceTree의 Reset, Revert, 시간여행 정리

주재민·2021년 10월 4일

sourceTree 파악하기

목록 보기
1/1

SourceTree 간단 메모


SourceTree 의 Reset

  • Mixed: Head를 선택된 커밋위치로 옮기되, 파일은 최근 변경된 내용 그대로 가져감

  • Hard: Head를 선택된 커밋위치로 옮기고, 파일도 해당 커밋된 파일 내용으로 롤백

  • Reset은 원하는 이전 커밋의 Head로 완전 되돌리는 기능

  • 간단한 상황을 예시로 들어보겠다, txt파일과 md파일 각각 한개 씩 3개의 커밋이 나간 상황

  • 그럼 커밋 2개 정도 추가해보겠음( md파일만 수정 )
    1. Mixed - Reset을 해보고
    2. Hard - Reset을 해보려고 한다

  • Mixed - Reset을 한 경우
    ( Reset을 원하는 위치의 커밋에서 우클릭! )

    → 밑에 Delete 7을 추가했던 내용이 그대로 남아있고, 커밋해야될 Uncommitted changes 이 추가되어있는 점을 알 수 있다

  • 그럼 다음으로, Hard - Reset을 한번 살펴보자

    → Typora 밑에 Delete 6,7이 모두 내용이 롤백되고, 커밋도 추가해야될 커밋 없이 해당 위치로 Head가 돌아간 것을 확인할 수 있다


SourceTree의 Reverse(Revert)

  • 바로 이전 커밋의 파일 내용을 되돌리되, 되돌리는 커밋을 함께 날려서 파일 내용을 롤백
  • 조심해야 할 점: revert하려는 커밋위치 이후의 커밋이 있으면 안된다 → 충돌 발생!
  • 그럼 여러개의 커밋 이전의 커밋에 revert하고 싶다면?
    : 맨 위 커밋부터 차근차근 내려와야 한다
    • revert의 진정한 의미: 해당 커밋 내용만 롤백한다!
  • Revert를 한번 테스트해보자, 일단 Revert 전 상황

  • 그럼 Revert 가 필요한 커밋을 2개정도 날려보자

    → 아직 Revert커밋은 날리지 않았다, 그럼 가장 위 커밋을 Revert해보자
    ( M4는 바로 Revert안되는 이유는 위에 있다!)
    ( Revert을 원하는 위치의 커밋에서 우클릭! )

    → 자동생성된 Revert Commit과 함께 파일 내용도 원복된 것을 확인가능
    → 그럼 다시 한번 M4 Commit을 Revert해보자
    → 파일 내용(Revert 1)과 Revert 커밋이 자동으로 나간 것이 확인된다

시간 여행도 가능하다, SourceTree에서

  • 그 방법은 해당 커밋의 위치를 2번 클릭
  • 그러면, 해당 커밋에 존재했던 Repository의 파일 모습으로 나타내준다
  • 위 Repository의 디렉터리 상태
  • 그럼 typora.md가 없었던 M1 커밋 상태로 가보자 → typora.md 파일이 없어지고, M1:... 커밋에 HEAD가 위치한 점을 확인할 수 있다,
    → 그럼 다시 원래 상태의 커밋으로 돌아오고 싶으면 어떻게 해야될까?
    • 원래 상태로 되돌리고 싶다고, 맨 위 커밋으로 찍으면 안된다!!!
      → 현 상태에서는 master 브랜치를 더블클릭 하면된다 !
      → 위 master를 더블클릭하면, 다음과 같이 master가 위치한 커밋으로 되돌릴 수 있다
profile
세상이 원하는 서비스를 만드는 그날까지

0개의 댓글