[TIL] 2023-06-26 drop 한 stash 복구하기

H Kim·2023년 6월 30일
0

TIL

목록 보기
39/72
post-thumbnail

KIJEOL의 시작

이번주엔 월요일부터 KIJEOL... 할 뻔 했다...
같은 프로젝트 내에서 우선순위가 더 높은 건이 있어서 그거 한다고 3달 정도 작업해 놨던 브랜치를 stash를 시키고 작업하고 다시 돌아왔다...
로컬 커밋은 사실 중간중간 해 놓는 것이 좋다는 거 알고 있는데,
아직도 어디정도에서 어떻게 구분을 해서 끊어야 될 지를 잘 모르겠어서 안 하고 그냥 작업하는 게 습관이 됐다...

그런데...
웹스톰 창에서 보다가...
drop 과 clear를 보다가...
어쩐지 drop이 맞아보이길래 눌렀음...
그리고 날아감...ㅎㅎ...ㅎㅎㅎ...
당연하죠...
왜냐면 stash 한 걸 떨굴려면 apply니까요...ㅎㅎ..ㅎㅎㅎ...
날리고 나서 약 5초 정도, 'ㅎㅎ... 망했다...ㅎㅎ... 이거 다시 작업...? 하지... 할 수 있지... 업무노션에 중간중간 코드 베껴놓긴 했으니까 그래도 한 달 걸릴 듯... ㅎㅎ...' 하고 있었다...

그래도 복구의 시도는 해 봐야 하니까...
사수한테 ㅎㅎ 하면서 물어봤는데ㅋㅋㅋㅋㅋ 내가 너무 ㅎㅎ 하고 있어선지 약간 큰일났구나 아시고 방법 찾아주셨다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


복구하기

먼저 이 포스트를 참고하여

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

이 명령어를 써 봤다.

그러나... clear(stash 목록 전체 다 날리기)와 drop(선택한 stash 하나 날리기)는 또 뭔가 안에서 처리하는 로직이 다른지 내꺼에서는 hash값까지는 뜨지 않았다.

다시 KIJEOL... 하려는 와중,


git fsck --no-reflog |awk '/dangling commit/ {print $3}'

이 포스팅에서 해시값을 찾아내는 명령어를 찾아서 쳐봤다.


근데 이랬더니 해시가 한 개가 아니고 여러개가 와서 다시 KIJEOL 하고 있었다...
얘네들은 dangling commit 이라고 해서 어느 브랜치나 태그로부터도 참조되고 있지 않은 커밋(stash commit도 포함) 된 것이라고 한다.
dangling... 이라니... 쓸데없이 귀여운 작명이네...
어쨌든 해시는 왔으니까...


dc0a547c088f62f04c425b138
f3351c0a88f97efa43396bb83
3fb2760baa9a5e1d2bd976773
50e37e547e04a557bb10e7c20
86043d9bb7bb11ce134134f9a
9c5d1f477a318b24833136713
60aeddbede1b4ad7eef48a2d6

이거 보고 사수한테 "첫 번째일까요 마지막일까요?" 하니까ㅋㅋㅋㅋㅋㅋㅋ
그냥 하나씩 다 적용시켜보고 아니면 롤백을 하래ㅋㅋㅋㅋㅋㅋㅋㅋ
그래서 그렇게 함...

다른 사람들은 언제 이 dangling commit이 생성되었는지 일시도 나오던데?
나는 안 나와서 그건 왜인지 모르겠네...
쨌든 중간에서 발견했는데 이게 해시가 남는 것도 순서대로가 아닌가? 라는 추측만 했다.
그리고 stash 값이 아닌 해시도 있었다.


결론

어쨌든 이렇게... 살았습니다...
이젠 커밋하면서 살기...
약속 또 약속...

0개의 댓글