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를 이용한 푸쉬 오류 해결 법
- 위에서 작업한 내용을 다시 초기화 한다.
- 파일을 수정 후 커밋까지 완료한다.
- 오류가 발생하였다.
- 해당 분기 지점으로 병합을 실시한다.
- 병합 후 푸쉬가 가능하다