반응형
버전 관리가 중요한 상황에서 Git은 필수 도구입니다.
이번에는 git reset과 관련된 핵심 개념, 그리고 HEAD, reset, tag까지 보겠습니다.
git reset
- git reset [옵션] [커밋ID]
- reset은 HEAD와 스테이징 영역, 워킹 디렉토리의 상태를 이전 커밋 기준으로 되돌리는 명령어입니다.
- 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 |