Reset(되돌리기)
- 현재 브랜치의 최신 상태를 이전 커밋(원하는 커밋)으로 되돌리는 기능
- 3가지 모드 존재
Hard
: 모든 작업 내 변경 사항을 버린다.(변경 사항을 다 삭제)Mixed
: 원하는 커밋으로 되돌아가지만, 변경사항은 스테이지 아래에 둠Soft
: 원하는 커밋으로 되돌아가지만, 변경사항은 스테이지 위에 둠
Sourcetree Hard Reset 실습
add featB 커밋으로 되돌리기 위해 Reset 버튼을 클릭
3가지 모드 중 Hard 선택
로컬저장소는 적용됐지만 원격저장소 origin에는 아직 적용되지 않음
히스토리를 수정하는 작업이기 때문에 강제푸시를 사용해야 한다.
따라서 ForcePush를 체크한다.
정상적으로 원격저장소인 origin에도 적용된 것을 확인할 수 있다.
Revert
- 커밋의 변경사항을 되돌리는 새로운 커밋을 만듦
- Reset과 가장 큰 차이점은 Revert는 커밋 이력을 만든다는 점
- 특정 커밋을 언제든지 되돌릴 수 있음
Stash
- 커밋하지 않은 변경사항을 잠시 다른 곳에 임시저장
Stash 기능을 사용하기 위해 README.md 파일을 조금 수정하여 커밋을 만든다.
Stash 버튼을 누르고 Message는 임의로 설정한다.
Stash 안에 들어간 것은 언제 어디서든 사용가능하다.
b Brach에서 a Branch로 이동해서 오른쪽 마우스를 누르고
Apply Stash를 누르면 사용가능하다.
경고문이 뜨는데 아래 옵션은 적용 후 스태시를 삭제하겠다는 뜻이다.
충돌이 나긴 했지만 정상적으로 Stash에 넣어뒀던 커밋이 branch A에 들어온 것을 확인할 수 있다.