Git 작업 취소 - Reset

Weed·2024년 2월 22일
0
post-thumbnail
  • Reset
    • 돌아가려는 커밋으로 리파지토리는 재설정되고, 해당 커밋 이후의 이력은 사라짐
$ git reset <option> <commit-id>

  • hard
    • 되돌린 이력 이후의 내용은 지워짐
    • INDEX 취소, ADD 하기 전 상태 (UNSTAGED 상태)
    • 작업영역의 파일 삭제 (모두 취소)
$ git reset --hard <commit-in>
# 커밋을 취소하고 Unstaged 상태로 되돌리기
$ git rest --hard HEAD^
  • soft
    • 되돌린 이력 이후의 내용은 보존
    • 해당 내용의 INDEX (스테이지)도 그대로 존재
    • 바로 다시 커밋할 수 있는 상태로 남아 있음
    • INDEX 보존, ADD한 상태 (STAGED 상태)
    • 작업 영역의 파일 보존
    $ git reset --soft <commit-id>
  • 커밋이 된 경우 커밋 이전으로 되돌리기
    • 커밋하기 이전의 Staged(Added) 상태로 돌아 감
    $ git reset -soft HEAD^
    • add하기 이전의 상태로 되돌리기 (Staged -> Unstaged)
    $ git reset filename
    $ git reset HEAD filename
  • mixed
    • 옵션을 적지 않으면 mixed 옵션 적용 (default)
    • 이력은 되돌리며 이후에 변경된 내용에 대해서는 남아있지만 인덱스는 초기화 됨
    • 커밋을 하려면 다시 변경 된 내용은 추가해야 하는 상태
    • INDEX 취소, ADD하기 전 상태 (UNSTAGED 상태)
    • 작업영역의 파일 보존 (기본 옵션)
    $ git reset --mixed <commit-id>
    • Unstaged 상태로 변경
    $ git reset --mixed HEAD^
    $ git reset HEAD^
    • Unstaged 상태로 변경 (마지막 두 개의 커밋 취소)
    $ git reset HEAD~2
    • add 취소
    $ git reset HEAD
profile
개발자로 전직해보자

0개의 댓글