금요일 저녁 6시 40분. 배포 직전에 급하게 고친 파일 세 개를 커밋하려다가, 손이 미끄러져 `git checkout .` 을 눌러버린 신입 개발자 A씨의 이야기입니다. 두 시간 동안 만진 코드가 조용히 사라졌습니다. 에러 메시지도, 확인 창도 없었습니다. Git이 무서운 이유는 어렵기 때문이 아니라, ==틀린 명령이 아무 말 없이 성공하기 때문==입니다...

며칠 밤을 새워 만든 기능을 커밋한 순간, 뭔가 잘못됐다는 걸 깨달은 적이 있을 것이다. 방금 지운 파일이 사실은 지우면 안 되는 것이었거나, 커밋 메시지를 엉뚱하게 적었거나, 아직 손도 안 댄 다른 사람의 코드까지 통째로 덮어써 버렸거나. 그때 머릿속에 떠오르는 단어는 하나다. 되돌리기. 그런데 막상 검색해 보면 `reset`, `revert`, `res...
