깃을 사용하다 보면 커밋메시지를 바꾼다거나 파일을 더 추가하고 싶다는 이유 등으로 git reset 명령어를 자주 사용한다. reset --soft로 돌아가면 문제없는데 커밋 이후 파일을 변경하면 reset --hard로 급하게 돌아오고 커밋하는 경우도 종종 있다. 문제는 이 과정에 중요한 코드가 누락될 수가 있다는 건데. 이번에는 이걸 되돌리는 방법에 대해 설명해 보겠다.
커밋 내역 확인(git reflog)
예시를 위해 Commit1~4 순으로 커밋했을 때 get reflog를 통해 위와 같이 커밋한 순서대로 커밋아이디와 커밋 메시지가 적혀있는걸 확인할 수 있다.
이후 git reset --hard 305ef51로 과거 버전으로 이동하면 이후 커밋한 내역들(Commit_4)가 사라진걸 확인할 수 있다.
git reflog를 확인해 보면 이전에 git reset --hard로 날려버린 커밋 아이디와 커밋 메시지가 아직 남아있는걸 알 수 있다.
다시 한번 git reset --hard <커밋 아이디>
이후 과정은 다시 원하는 위치의 커밋 아이디를 통해 원하는 위치로 이동하면 된다. 여기서는 get reset --hard 7b92c9a 로 기존 hard reset 이전 위치로 다시 이동했고 파일도 복원된걸 확인할 수 있다.
'Notes' 카테고리의 다른 글
ImportError: Could not import sentence_transformers python package. Please install it with `pip install sentence-transformers`해결방법 (1) | 2024.11.09 |
---|---|
WSL VScode에서 SSH 에러 (Could not establish connection to "ip")해결방법 (1) | 2024.09.20 |
Pytorch-GradCAM 치트시트 (0) | 2024.09.07 |
timm 정리 (0) | 2024.08.25 |
기존 딥러닝 개발환경 복제하기 (0) | 2024.06.24 |