Git으로 삭제된 파일 복구하기

코드 수정 작업을 하고 테스트를 통과하는지 확인하려고 command+Shift+T를 하니 기존 테스트가 나와야하는데, Create new Test가 뜹니다. 무슨 일인가 Test package로 가보니 정말 해당 package의 테스트가 전부 사라져있었습니다. 언제 무슨 일로 이게 사라졌을까 알기 위하여 지난 번 포스트: Git log에서 변경내용 찾기에서 배운 git log -p G"ControllerTest" --oneline을 검색했습니다.

git log 확인 커밋 번호와 로그가 빨갛게(삭제된 색깔) 나옵니다.

해당 커밋메세지로 PR도 확인해봅니다. 모두 이 커밋에서 삭제되었네요.

자, 이제 저 파일들을 복구해봅시다.

처음에 생각했던 방법은 해당 커밋으로 가서 커밋 내용을 수정하는 것이었습니다. 하지만 해당 커밋으로 돌아가려고 하니 이미 그 이후로 변경된 것들이 많아서 충돌 해결하는게 더 번잡했습니다.

다음으로 생각한 방법은 해당 커밋을 cherry-pick해서 삭제한 파일들만 복구 시켜야겠다. 근데 위의 방법과 같은 문제를 겪었습니다.

삭제된 파일만 복구 할 방법이 없나? 열심히 구글링해 본 결과 git에서 삭제된 파일 목록을 검색하는 기능도 있고 이를 복구도 할 수 있었습니다.

git checkout {커밋}^ -- {복구할 파일 이름}

위의 이 명령어로 삭제된 파일들을 모두 복구시켰습니다. 삭제된 파일 목록을 검색하면 어떤 커밋에서 삭제되었는지도 알려주지만, 저는 이미 앞에서 로그로 확인을 했기 때문에 바로 명령어를 날렸습니다.

복구확인

정상적으로 복구가 되었습니다! git에 한발짝 더 다가간 것 같네요.

results matching ""

    No results matching ""