ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • git commit 안하고 checkout 한 경우 삭제 파일 되돌리기
    카테고리 없음 2025. 2. 1. 13:33

    특정 브랜치에서 코드 변경 후 push한 다음 다른 브랜치로 checkout하려 했다.

    그런데 git commit에 오류가 났고, 그 사실을 모른 채 checkout했다....

     

    결국 git add만 하고 commit과 push를 안한 상태로 다른 브랜치로 이동한 상태가 되었다.

    수많은 코드를 추가했기 때문에 꼭 되돌려야만 했다.

     

    당시 터미널 스크린샷. git commit에서 오류난 채로 checkout한 모습

     


    시도1. git fsck --lost-found 명령어 사용하기

    Git은 때때로 삭제된 변경 사항을 내부적으로 보관하고 있다고 한다.

    git fsck --lost -found

    이 명령어를 실행하면 Git이 관리하는 객체 중에서 잃어버린(commit되지 않은) 변경 사항을 찾을 수 있디.

    실제 적용 결과

     

    그 후 아래 명령어로 변경사항을 찾아보았다.

    git show [blob이름]

     

    실제 적용 모습

     

    하지만 저 수많은 blob 기록들은 오래전의 변경사항이었고 내가 원하는 기록은 없었다.

     


     

    시도2. git reflog 명령어 사용하기

    git reflog는 최근 브랜치 변경 기록을 추적하여 사라진 변경 사항이 있는지 확인할 수 있다고 한다.

     

    git reflog

     

     

    실제 적용 결과

     

    하지만 애초에 commit을 하지 않은 상황이기 때문에 내가 원하는 기록은 당연히 나오지 않았다.

     


     

    시도3. intelliJ의 Local History 사용하기

    현재 intelliJ를 사용하고 있었는데, 이 IDE에서 이전 변경사항을 저장해준다고 한다!

     

    - File - Local History - Show Project History 클릭 

     

    - checkout 하기 전 기록을 찾아 우클릭, "Revert Selected and Later Changes" 클릭

     

    " Revert Selected and Later Changes" 버튼은 선택한 특정 버전으로 파일을 복구하고, 그 이후에 발생한 모든 변경 사항도 함께 되돌린다. 즉, 선택한 시점부터 이후 모든 변경 사항을 취소하게 된다.

     

    이렇게 하면 checkout하기 전 버전으로 되돌릴 수 있다!

     

     

    ** VisualStudioCode의 경우 아래 링크를 참고하여 해결하자.

    https://stackoverflow.com/questions/46446901/how-can-i-see-local-history-changes-in-visual-studio-code#72417398 

Designed by Tistory.