15장 사고 직후에는 멈추고 증거부터 남긴다
실수 직후 가장 위험한 행동은 검색 결과의 reset --hard를 맥락 없이 복사하는 것이다. 아래 진단을 텍스트 파일이나 이슈에 남긴다. 비밀이 들어간 원격 URL은 가린다.
git status
git log --oneline --graph --decorate --all -20
git reflog -20
git diff
git diff --staged
그 다음 세 질문에 답한다.
- 변경은 커밋 전인가, 로컬 커밋인가, 이미 공유됐는가?
- 파일 내용을 보존할 것인가, 커밋 구조만 바꿀 것인가?
- merge, rebase, cherry-pick 같은 진행 중 작업이 있는가?
모르면 먼저 저장소 폴더를 별도 위치에 복사할 수 있다. 단, 비밀과 대용량 파일 취급 정책을 지킨다. untracked 파일은 reflog가 보호하지 않는다. 중요하지만 아직 추적되지 않은 파일은 별도 백업이 우선이다.