Git이 타임머신이라면, 커밋은 그 순간을 실제로 저장하는 버튼이에요.
저장 지점 자체는 그냥 스냅샷에 불과해요. 커밋은 그 스냅샷에 메모지를 붙인 거예요. 무엇을 바꿨고 왜 바꿨는지를 적어둔 메모. 그게 핵심이에요. 메모 없이는 이름 없는 저장 지점 수백 개만 남고, 어디로 되돌아가야 할지 알 수가 없어요.
커밋은 항상 두 가지가 하나로 묶인 거예요.
스냅샷. 그 순간 모든 파일의 정확한 상태, 그대로 동결된 것.
메시지. 무슨 일이 있었는지 직접 쓴 한 줄짜리 설명.
메시지들은 작업 일지처럼 읽혀요.
- "결제 버튼 추가."
- "홈페이지 오타 수정."
- "전부 망가뜨림, 도움 요청."
몇 달 뒤 그 목록을 스크롤하면 어떻게 만들어졌는지 전체 이야기를 한 줄씩 읽을 수 있어요. 사람 기억은 그렇게 오래 버티지 못하지만, 커밋 히스토리는 버텨요.
메모는 미래의 자신을 위해 써야 해요. 미래의 자신은 모든 것을 잊어버린 사람이거든요. 저도 늘 그 신세예요. "stuff"나 "fixes"라고만 적힌 커밋은 자정에 패닉 상태로 들여다볼 때 아무 단서도 주지 않아요. 비교해보면 분명해져요.
- "stuff" → 이제 파일 스무 개를 열어서 뭐가 바뀌었는지 찾아야 해요.
- "쿠폰이 두 번 적용되던 버그 수정" → 같은 문제가 다시 생겼을 때 어디를 봐야 할지 바로 알아요.
하나는 선물이고, 다른 하나는 미래의 자신에게 보낸 무책임한 메모예요.
AI가 등장하는 순간 이게 더 중요해져요. 에이전트는 무언가를 만들 때 한 번에 다 하지 않아요. 진행하면서 커밋을 남겨요. 작은 저장 지점을 하나씩, 각각 메모와 함께. 그래서 오전 9시에 방향이 틀어졌는데 11시에야 알아챘다 해도 오전 작업 전부를 날리지 않아도 돼요. 마지막 정상 커밋으로 되돌리면 되거든요. 잘못된 두 시간이 없었던 것처럼.
손을 거의 댈 필요도 없어요. Codex나 Claude Code 같은 도구는 작업하면서 커밋을 알아서 만들어요. 메시지까지 포함해서. 깔끔한 기록이 자동으로 쌓여요.
그 기록에는 또 다른 쓸모가 있어요. 커밋 히스토리는 가장 손이 덜 가는 주간 보고이기도 해요. 무엇을 했는지 기억해내려 앉아있을 필요가 없어요. 금요일에서 월요일로 스크롤하면 돼요. 모든 변경 내용, 모든 수정 사항, 타임스탬프와 함께, 이미 다 적혀 있으니까요.
좋은 커밋은 기록 관리가 아니에요. 나중에 이 코드로 돌아와서 과거의 자신이 무슨 생각을 했는지 파악해야 할 그 사람에게 건네는 메모예요.