리셋 (reset)
리셋 (reset)은 커밋을 기준으로 이전 코드로 되돌리는 방법으로, 기록한 커밋을 취소합니다.
커밋을 취소하는 만큼 신중하게 작업해야합니다.
git log --oneline : 커밋내역을 간단하게 확인
git reset --옵션 커밋ID
리셋에는 세가지 옵션이 있는데요, soft , mixed , hard가 있습니다.
hard로 갈수록 위험합니다.
- soft : HEAD 포인터만 움직이고, 워킹과 스테이지 영역은 그대로 입니다.
- mixed : 기본옵션. 워킹은 그대로, unstaged된 상태로 이전 커밋으로 옵니다.
- hard : 실제 파일이 삭제된 이전 상태로 복원합니다.
리버트 (revert)
리셋은 기존 커밋 정보를 삭제하지만, 리버트를 기존 커밋을 남겨두고 취소에 대한 새로운 커밋을 생성합니다.
git revert 커밋ID : 리버트로 취소 커밋을 생성합니다
git revert 커밋ID .. 커밋ID : 깃의 범위 지정 연산자 (..)를 이용해 여러 커밋을 리버트 할 수 도 있습니다.
커밋ID를 HEAD포인터로 대체
현재 커밋은 HEAD , 이전 커밋은 HEAD~ , 2단계 전 커밋은 HEAD~2등을 이용해서 커밋ID를 대체 할 수 있습니다.
예시)
- git reset --soft HEAD~ : 이전 커밋을 soft를 통해 이동
- git checkout HEAD~n : n단계전 커밋으로 HEAD포인터를 이동(브랜치도 이 방식으로 바꿀수 있다)
반응형
'Git using(깃 사용하기)' 카테고리의 다른 글
깃(git) 병합 - merge (Fast-Forward / 3-way) (0) | 2022.04.20 |
---|---|
깃(git) 브랜치 (branch)와 업스트림 (upstream)(-u , --set-upstream) (0) | 2022.04.18 |
깃(git) pull과 fetch의 차이 (깃 풀과 페치의 차이) (0) | 2022.04.17 |
github 이용하기 - remote , push , pull (깃(git) 원격저장소) (0) | 2022.04.15 |
깃(git) 커밋 - add, commit (0) | 2022.04.14 |
댓글