강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

재림님의 프로필 이미지
재림

작성한 질문수

빠르게 git - 핵심만 골라 배우는 Git/Github

reset 실습

git reset 이후 다시 돌아가는 방법( staging area, working directory)

작성

·

288

1

안녕하세요, 강의 잘 듣고 있습니다.
 
다름이 아니라,  git reflog 를 이용하면 커밋취소했던 내용만 복구가 됩니다.
 
그런데, git reset --hard HEAD^ 로 하면 working 디렉토리, staging area에 있는 내용도 다 삭제가 되잖아요. 이 부분을 다시 복구하는 방법도 알려주실 수 있나요?

답변 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

 

 

재림님의 프로필 이미지
재림

작성한 질문수

질문하기