인프런 커뮤니티 질문&답변
git reset 이후 다시 돌아가는 방법( staging area, working directory)
작성
·
295
퀴즈
`git reset --hard` 명령이 워킹 디렉토리, 스테이징 영역, 저장소에 미치는 영향은 무엇일까요?
저장소만 지정된 커밋으로 되돌립니다.
워킹 디렉토리, 스테이징 영역, 저장소 모두 지정된 커밋 상태로 초기화합니다.
스테이징 영역과 저장소만 되돌리고 워킹 디렉토리 변경사항은 유지합니다.
워킹 디렉토리와 스테이징 영역만 되돌리고 저장소는 그대로 둡니다.
답변 1
1
안녕하세요, git reset 을 통해 삭제된 내역을 되돌리는 방법을 여쭈어보신 건가요?
git reset --hard HEAD^ 명령어를 통해 커밋을 되돌린 뒤
git reflog 명령어를 치시면 아래와 같이
HEAD 가 있었던 내역이 나오게 됩니다.
reset 이후 현재 HEAD는 아래 굵게 표시한 것처럼 390eafb에 위치한 걸 알 수 있죠.
minchul@DESKTOP-9KULGUE MINGW64 ~/Desktop/git (master)
$ git reset --hard HEAD^
HEAD is now at 390eafb 2
minchul@DESKTOP-9KULGUE MINGW64 ~/Desktop/git (master)
$ git reflog
390eafb (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
2ecc6a0 HEAD@{1}: commit: 3
390eafb (HEAD -> master) HEAD@{2}: commit: 2
4cc7f6b HEAD@{3}: commit (initial): 1
만일 reset을 하시기 전으로 돌아가고 싶으시다면
이전의 HEAD로 reset하시면 됩니다.
예를 들어 reset하기 직전인
2ecc6a0 HEAD@{1}: commit: 3
로 되돌아가고 싶으시다면
git reset --hard HEAD@{1}
명령어를 통해 되돌아가실 수 있습니다.
그럼 아래와 같이 reset을 치기 전으로 돌아갔다는 걸 확인할 수 있을 겁니다.
minchul@DESKTOP-9KULGUE MINGW64 ~/Desktop/git (master)
$ git reset --hard HEAD@{1}
HEAD is now at 2ecc6a0 33
minchul@DESKTOP-9KULGUE MINGW64 ~/Desktop/git (master)
$ git log
commit 2ecc6a091d26a2a689280380495131a13e871e32 (HEAD -> master)
Author: Kang Minchul <tegongkang@gmail.com>
Date: Tue Sep 21 00:52:40 2021 +0900
3





