본문 바로가기
IT/Git

git reset 심화편..

by 베이스_ 2025. 4. 16.
반응형

git reset --hard / --mixed / --soft

버전 관리가 중요한 상황에서 Git은 필수 도구입니다.
이번에는 git reset과 관련된 핵심 개념, 그리고 HEAD, reset, tag까지 보겠습니다.


git reset 

  • git reset [옵션] [커밋ID]
    • reset은 HEAD와 스테이징 영역, 워킹 디렉토리의 상태를 이전 커밋 기준으로 되돌리는 명령어입니다.

  • git reset 의 옵션으로는
    • --soft    # 커밋만 되돌림 / 코드 상태는 그대로
    • --mixed  # 커밋 / 스테이징영역 되돌림 / 작업 코드는 그대로
    • --hard  # 커밋 / 스테이징영역 / 작업코드 모두 다 되돌림
    • 옵션을 생략하면 기본옵션은 --mixed 
  • 즉 정리를 하자면
    • HEAD 이동                --> soft
    • + Staging 영역 리셋      --> mixed
    • + Working Directory 리셋 --> hard
  • git reset 예제
    • git reset --soft HEAD~1  # 마지막 커밋만 취소, 스테이지 상태 그대로 유지
    • git reset --mixed HEAD~1  # 마지막 커밋 취소, 스테이징 영역도 취소됨 (코드는 그대로)
    • git reset --hard HEAD~1  # # 마지막 커밋 취소 + 스테이징도 취소 + 코드도 되돌아감
    • git reset --hard HEAD^     # 한 단계 전 커밋
    • git reset --hard HEAD~2    # 두 단계 전 커밋
    • git reset --hard 1a2b  # 커밋ID는 앞 4~6자리만 적어도 됨

태그로 특정 커밋 관리

중요한 버전에 태그를 달아두면 되돌아가기 쉽습니다.

  • git tag version1 <커밋ID>   # 커밋에 태그 생성
  • git tag                    # 현재 태그 목록 확인
  • git show version1          # 태그가 가리키는 커밋 내용 확인
  • 에제/ git tag patch_2025_04_01 1a2b3c4d

반응형

'IT > Git' 카테고리의 다른 글

git 실전 준비.. git fetch, git revert 등..  (0) 2025.04.26
git 정리  (0) 2025.04.25
git status, add, reset 등 git 기본  (0) 2025.04.16
Git 이란.?  (0) 2025.03.25