일찍 commit, 자주 commit, 의도적으로 commit
Zen 레슨. 대부분 Git 조언은 기계적: 어떤 명령, 어떤 flag, 어떤 workflow. 가르치기 가장 어려운 기술은 리듬 — 언제 commit, 얼마나 자주, 어떤 의도로. 의도적으로 commit 하는 팀은 코드와 다른 관계를 가져, '뭔가 끝나면' commit 하는 팀과는. 이 quest 의 거의 모든 Git 고통이 이 리듬 자리잡으면 녹아.
일찍 commit. Commit 은 milestone 이 아니라 checkpoint. 컴파일되고 대충 작동하는 일관된 작업 단위 있는 순간 commit. '끝남' 기다리지 마 — 끝남은 한 세션에 거의 안 오는 높은 bar. 자주 작은 commit 이 네게 fine resolution reflog history, 네 자신 작업 통과 bisect 옵션, 작동했던 부분 안 잃고 실험 포기 능력 줘.
자주 commit. 작업 세션은 commit 하나가 아니라 여러 개 만들어야. 각 commit 이 생각 하나 캡처: '이 함수가 이제 빈 입력 처리,' '이 오타 고침,' '이 refactor 가 helper 추출.' 나중에 push 전 interactive rebase 로 squash 하거나 그대로 두거나, 정책에 따라. 자주 commit 의 핵심은 세션 중 안전망, history 의 게시된 모양 아니라.
의도적으로 commit. 각 commit 이 한 질문에 답해야: 어떤 개념을 진전시켰나? 답에 'and' 나 'also' 필요하면 commit 두 개. 50 자 안에 답 표현 못 하면 작업이 아직 일관된 단위 아님 — 편집 계속. Commit 메시지가 강제 반성: 날카로운 메시지 쓸 때면 무엇이 바뀌었는지 이미 이해한 거야. 메시지 쓰는 행위가 변경이 깨끗했는지 알려줘.
일 년의 누적 보답. 일찍-자주-의도적 commit 하는 엔지니어는 읽을 수 있는 reflog history, 자기 과거 작업 초 단위 bisect, 살릴 수 있는 부분 안 잃고 막힌 branch 포기, 일 년 된 git log 읽고 무슨 생각했는지 기억. '끝나면' commit 하는 엔지니어는 기능당 거대 commit 하나, 회복 세부 단위 없음, 자기 옛 코드를 낯선 사람이 쓴 것처럼 읽음. 기술이 누적되고, 부재도 그래.