git push
를 하기 이전의 상황에서는 로컬에서만 작업한 커밋을 되돌리는 방법을 뜻한다.HEAD
와 HEAD~1
의 의미도 자세히 알아보겠다.Git에서 HEAD는 현재 작업 중인 브랜치의 가장 최신 커밋을 가리킨다.
HEAD^
HEAD^
는 HEAD~1
과 같은 의미이다.HEAD^^
또는 HEAD~2
로 표현한다.활용 예시:
HEAD~1
을 사용해 이전 커밋으로 작업을 되돌리거나 특정 파일을 복원할 수 있다.# 수정할 파일 추가
git add <파일명>
# 기존 커밋에 추가
git commit --amend
# 마지막 커밋 메시지 수정
git commit --amend -m "새로운 커밋 메시지"
# 스테이징에서 파일 제거
git restore --staged <파일명>
# 기존 커밋 업데이트
git commit --amend
👉 커밋을 취소하고, 작업한 내용을 다시 수정하거나 커밋하고 싶을 때 사용한다.
git reset --soft HEAD~1
👉 커밋과 작업한 내용을 모두 삭제하고 초기 상태로 되돌리고 싶을 때.
git reset --hard HEAD~1
git reflog
를 사용해 복구할 수 있으니, 실수로 삭제했을 경우 reflog를 확인하면 된다.👉 특정 커밋을 되돌리는 새로운 커밋을 생성한다.
git revert <커밋 해시>
👉 커밋된 내용 중 특정 파일만 복원하고 싶을 때.
git restore --source=HEAD~1 <파일명>
# 또는
git checkout HEAD~1 -- <파일명>
git commit --amend
git reset --soft HEAD~1
git reset --hard HEAD~1
HEAD~1
과 다른 표현의 차이표현 | 의미 |
---|---|
HEAD | 현재 커밋 |
HEAD~1 | 현재 커밋에서 한 단계 이전 커밋 |
HEAD~2 | 현재 커밋에서 두 단계 이전 커밋 |
HEAD^ | HEAD~1 과 동일한 의미 |
HEAD^^ | HEAD~2 와 동일한 의미 |