Q : 특정 경로에 있던 파일이 보이지 않아요? 실수로 삭제(또는 이동)된 것 같아요. 어느 커밋에서 삭제된 걸까요?
A : git log --name-status -- : D(Delete) 표시된 커밋을 찾고, git revert --no-edit : 삭제된 커밋을 되돌됩니다.
Git command line 을 활용해야 할 것 같아요. 다음을 따라해 볼 수 있습니다.
- 우선 삭제된 파일이 있었던 경로를 확인합니다. (Project > 삭제된 파일의 디렉토리 우클릭 > Copy Path/Reference > Path From Content Root)
- Intellij 에서 Terminal 윈도우를 엽니다. (Menu > Tool Windows > Terminal)
- 프로젝트 루트 경로에서 Terminal 이 열립니다.
- 다음 명령어를 위에서 찾은 경로와 함께 입력합니다. 경로는 상황에 따라 현재 디렉토리에서 상대경로로 입력하면 됩니다 (명령어 상세 설명)
git log --name-status -- src/main/java/com/example/programming/test/MyTest.java
- 아래와 같이 해당 파일의 커밋 이력이 최신 순서로 출력 됩니다. 엔터를 치면서 이력을 확인하며 D(Delete) 라고 표시된 커밋을 찾습니다.
- 삭제한 커밋의 해쉬 값을 복사하고 Q를 입력하여 log 확인 모드(?)에서 빠져나옵니다.
- 삭제한 커밋을 Revert 합니다. 아래와 같이 명령을 입력합니다.
git revert 2154c61839bbb870c9cf8080986b82e067917da2 --no-edit
- 삭제된 커밋이 되돌려집니다. 아래 예시는 .../test/MyTest.java 경로에 있던 파일이 .../pojo/MyTest.java 로 옮겨진 실수가 복구된 예시입니다.
GitHub 저장소에서 다른 질문과 답변도 확인할 수 있습니다.
→ GitHub 저장소