반응형

작업중이던 코드를 git stash 를 하고 실수로 git stash clear해서 stash들을 모두 삭제했다.

해당 stash를 찾고 복구해보자.

 

git stash 복구

1. 실수로 clear를 입력한 위치(프로젝트 파일 위치)에서 아래 명령어를 입력한다.

git fsck --no-reflog | awk '/dangling commit/ {print $3}' | xargs -L 1 git --no-pager show -s --format="%ci %H" | sort

 

2. 위의 명령어를 통해 stash의 해시값과 저장 시간을 알 수 있다. (맨 아래부터 최신 순서이다.)

commit의 해시값

 

3. 시간을 보고 내가 지운 stash를 확인한다. (가장 최근에 지웠다면 맨 아래 값이다.)

 

4. 아래 명령어를 통해서 stash를 코드에 적용한다.

git stash apply 해시값

ex) git stash apply 6a8515dc73999991b1fcd48fedfea60a1b7b35e5

 

5. 변경된 코드를 확인한다.

6. 변경된 코드가 찾던 stash라면 그대로 작업하면 되고, 아니라면 discard후 다시 다른 해시값으로 적용해보자.

 

출처: https://stackoverflow.com/questions/89332/how-do-i-recover-a-dropped-stash-in-git

 

How do I recover a dropped stash in Git?

I frequently use git stash and git stash pop to save and restore changes in my working tree. Yesterday, I had some changes in my working tree that I had stashed and popped, and then I made more cha...

stackoverflow.com

 

반응형
얼은펭귄