Git

Git | 삭제된 Commit 복구하기

LaKinRad 2022. 8. 26. 18:38

거의 막바지에 다다른 프로젝트의 마무리를 내가 맡게 되었다.

 

해당 프로젝트의 Git도 마무리 단계였기 때문에

나 혼자서 commit을 여러 번 하고, squash 하여 push 하는 식으로 사용하고 있었다.

 

여느 때와 같이

git rebase -i HEAD~3 명령어를 써서 squash를 하려고 했는데,

아무생각 없이 squash 해야 하는 두 commit 내역을 dd 명령어로 지워버렸다.

 

다행히 commit log 들이 남아있기 때문에, 이 log를 검색해서 복구할 수 있었다.

 


 

1번 커밋부터 3번 커밋까지 총 3번의 커밋을 한 뒤, 

git rebase -i HEAD~3 으로 squash 를 하려 했으나 실수로 2, 3번 커밋을 삭제하였다.

 

 

 

git graph 에는 2, 3번 커밋 내역이 사라져버렸다..

 


 

// commit 내역 조회
git reflog

// commit 내역 복구
git reset {--sort | --hard | --mixed} [commit id]

 

첫 번째 사진처럼 git reflog 명령어로 모든 commit 내역을 확인할 수 있다.

여기서 복구하고 싶은 commit id 를 복사하고,

git reset --hard [commit id] 명령어를 실행하면 두 번째 사진처럼 2, 3번 커밋이 복원되어 있는 것을 볼 수 있다.

 

 

git reset 에는 작성되어 있는 것 처럼 3가지 옵션이 존재하는데,

이 부분은 좀 더 공부하고 정리해서 다음에 기회가 될 때 포스팅해보려 한다.

'Git' 카테고리의 다른 글

Git | remote ref does not exist 오류 해결  (0) 2024.02.02
Git | 로컬 및 원격 브랜치 삭제하기  (1) 2024.01.04
Git | Staging 제외하고 Stash 하기  (0) 2023.06.08
Git | 강제로 Pull 받기  (0) 2022.11.09
Git | Stash 복구하기  (0) 2022.05.30