Git

[Git] reset으로 커밋 되돌리기(Sourcetree)

tgool 2023. 3. 13. 14:23

설명

  • git reset --hard 에 해당하는 명령으로 커밋을 되돌리기
    • reset 이후 push는 force 옵션을 선택해야 함
  • 이전 커밋은 사라짐
  • push --force 는 소스트리에서 지원하지 않기 때문에 CLI를 이용해야 함

reset의 장단점

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

reset 사용법

  • 소스트리에서 해당 버튼을 클릭

  • Hard 모드를 설정시 변경 사항 다 버린 후 분기 지점으로 리셋

  • 데이터가 날라갈 수 있기 때문에 경고창

  • 리셋 완료

강제 push 필요한 경우

  • 커밋 1회 실시

  • 커밋 2회 실시

  • reset

  • reset 성공

  • 리셋된 파일에 새로운 내용 작성

  • 변경한 내용 커밋

  • pull과 push 둘다 알림이 들어온다. (비정상 상태)

  • 변경한 내용 푸쉬시 오류가 나옴. 
  • 왜냐하면 원격 저장소(github or 서버)에 있는 내용과 완전히 다른 파일이 되어버렸기 때문이다.
  • 저장된 지점 이후로 변경한 사항이 있으면 상관 없는데, 저장된 지점 전의 내용을 수정했기 때문이다.
  • 소스트리는 강제 푸쉬 기능을 지원하지 않는다.
  • 리셋 기능은 위험하기 때문에 평상시에 사용하는 것을 비추천한다.

  • 상단 위 터미널 메뉴를 클릭한다.

  • 터미널 창이 뜨고 $ git push --force 를 입력하여 강제 푸쉬를 실시한다.

  • 강제 푸쉬가 완료되었다.

  • 정상적인 상태로 돌아왔다. 

Merge를 이용한 푸쉬 오류 해결 법

  • 위에서 작업한 내용을 다시 초기화 한다.

  • 파일을 수정 후 커밋까지 완료한다.

  • 오류가 발생하였다.

  • 해당 분기 지점으로 병합을 실시한다.

  • 병합 후 푸쉬가 가능하다