소개
개발자로 일하다 보면 중요한 파일을 실수로 삭제하고 커밋까지 해버리는 상황을 마주할 수 있습니다. 이번 챌린지는 이러한 시나리오를 바탕으로, Git 의 히스토리 조회 및 상태 복구 도구를 사용하여 유실된 파일을 찾아내고 프로젝트를 정상 상태로 복구하는 능력을 테스트합니다.
유실된 파일 복구하기
챌린지를 시작하기 전, ~/project/important-project 디렉토리에 Git 저장소가 이미 초기화되어 있습니다. 이 저장소에는 두 개의 중요한 파일이 생성되었다가 실수로 삭제된 기록을 포함하여 여러 개의 커밋이 쌓여 있습니다. 상황은 다음과 같습니다.
- 저장소는
README.md파일을 추가하는 초기 커밋으로 시작되었습니다. - 이후 커밋에서
important_algorithm.py와crucial_data.txt라는 두 개의 핵심 파일이 추가되었습니다. - 그 뒤로 몇 차례의 변경 사항이 더 커밋되었습니다.
- 어느 시점에
important_algorithm.py와crucial_data.txt가 실수로 삭제되었고, 이 삭제 작업이 커밋되었습니다. - 실수로 삭제된 커밋 이후에도 최소 하나 이상의 추가 커밋이 발생했습니다.
여러분의 과제는 저장소의 히스토리를 추적하여 삭제된 파일을 찾아 복구하고, 복구된 상태를 새롭게 커밋하는 것입니다.
과제
- 저장소 히스토리를 조사하여
important_algorithm.py와crucial_data.txt가 삭제된 시점을 찾으세요. - 삭제되기 직전의 상태로 저장소를 복원하세요.
- 기존 커밋 히스토리를 유지하면서, 복구된 파일들을 "Recover deleted files"라는 메시지와 함께 새로 커밋하세요.
요구사항
~/project/important-project디렉토리에서 작업해야 합니다.- 복구 완료 후
important_algorithm.py와crucial_data.txt파일이 존재해야 합니다. - 마지막 커밋 메시지는 반드시 "Recover deleted files"여야 하며, 이전의 커밋 히스토리가 보존되어야 합니다.
예시
챌린지를 성공적으로 마치고 프로젝트 디렉토리에서 ls를 실행하면 다음과 같이 나타나야 합니다.
$ ls ~/project/important-project
important_algorithm.py crucial_data.txt README.md
git status를 실행하면 작업 디렉토리가 깨끗한 상태여야 합니다.
$ git status
On branch master
nothing to commit, working tree clean
그리고 git log를 실행하면 최상단에 새로운 커밋이 보여야 합니다.
$ git log --oneline
8876d8b (HEAD -> master) Recover deleted files
9b3525c Update project status
5e6234c Oops, accidentally deleted important files
9de9506 Update algorithm TODO
01c36ae Add crucial data and algorithm
638a98d Initial commit
요약
이 챌린지에서 여러분은 실수로 파일을 삭제하는 흔한 Git 시나리오를 해결해 보았습니다. 이를 통해 다음의 기술들을 익혔습니다.
- HEAD 의 변화를 포함하여 저장소의 전체 히스토리를 추적하는 방법.
- 저장소를 특정 과거 시점으로 되돌려 프로젝트의 시간을 거스르는 방법.
- 복구된 상태를 보존하기 위해 새로운 커밋을 생성하는 방법.
이러한 기술은 유실된 커밋을 찾거나 실수를 바로잡고, 명확한 프로젝트 히스토리를 유지하는 데 매우 유용합니다. 이러한 도구들이 재앙으로부터 여러분을 구해줄 수는 있지만, 가장 좋은 방법은 항상 신중하게 작업하고 자주 상세한 커밋을 남겨 애초에 이런 상황을 방지하는 것임을 기억하세요.
이번 챌린지를 완수함으로써 여러분은 Git 의 가장 강력한 복구 도구들을 실전에서 다루어 보았습니다. 이 경험은 앞으로의 개발 경력에 큰 자산이 될 것입니다.



