본문 바로가기
프로그래밍 개발/GIT

GITHUB+sourceTree reset을 이용한 커밋 되돌리기

by Jinseok Kim 2020. 11. 9.
반응형

 

커밋 되돌리기

 

 

  • 바로가기 마우스 오른쪽 버튼=>git reset =>hard 에 해당하는 명령으로 커밋을 되돌릴 수 있다.
  • reset 이후 push는 force 옵션을 선택해야한다.
  • 이전 커밋은 사라진다.
  • push --force 는 소스트리에서 지원하지 않기 때문에 CLI를 이용해야 한다.

 

 

 

reset의 장단점

 

  • 장점: 쉽다
  • 단점: 커밋이 날아간다. push --force 가 필요하다.

 

 

 

 

 

 

직접 reset 해보기

 

 

 

 

 

  • 위의 코드들 중 왼쪽부터 오른쪽으로 순서대로 둘 다 한 번씩 각각 커밋을 해준다.
  • 브렌치의 master로 돌아가보면 되돌리기 테스트 1,2가 생성된 것을 볼 수 있다.
  • 지금 현재 상태는 되돌리기 테스트 2 상태이다.

 

 

 

 

 

 

 

 

  • 이때 맨 처음 커밋했던 되돌리기 테스트1으로 되돌리기를 위해 바로가기 메뉴에서 이 커밋까지 현재 브랜치를 초기화를 클릭한다.
  • Hard 모드로 모든 작업 상태 내 변경 사항을 버림으로 설정해준다. 그리고 확인 버튼을 눌러 초기화 시켜준다.

 

 

 

 

 

  • 다시 되돌리기 테스트1 상태로 돌아간 것을 확인 할 수있다.
  • 하지만 브랜치를 확인하니 되돌리기 테스트2는 완전히 사라져있었다.

 

 

 

 

주의사항

 

 

  • 미리 위에서 원격 저장소에 브렌치의 맨 위 최종 결과물을 PUSH을 하지 않았다면 reset한 커밋까지 위에서부터 정보가 완전히 날아가버리는 위험한 단점이 있다.

 

 

강제 푸시는 소스트리의 푸시하기 위해 떠오른 창 하단 왼쪽에 존재한다.

 

  • resetreset한 브렌치 원본 환경에서 다시 수정하고 커밋한 후 PUSH을 할때 강제 PUSH가 필요하다. 왜냐하면 reset으로 인하여 PUSH하려던 원본이 원격 저장소에 원래 올렸던 것보다 과거로 변했기 때문에 오류가 나기 때문이다.

 

 

 

 

 

 

 

 

반응형

댓글