C.W.K.
Stream
Lesson 04 of 04 · published

자주, 작게, 의도적으로 commit하기

~18 min · zen, habit

Level 0Untracked 새싹
0 XP0/47 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

일찍 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 하나, 회복 세부 단위 없음, 자기 옛 코드를 낯선 사람이 쓴 것처럼 읽음. 기술이 누적되고, 부재도 그래.

Code

진짜 작업 세션, commit 으로·text
# 기능에 두 시간 세션, 압축:
abc1234 feat(search): hold empty result state explicitly
def5678 test(search): cover empty array via /api/search
9876543 fix(search): handle missing query param fallback
fedcba0 refactor(search): extract result-formatter helper
1122334 docs(api): document /search empty-result shape
aabbccd chore(search): tidy imports after refactor

# 그대로 push, 또는 review 전 rebase -i 로 squash.
# 어느 쪽이든 SESSION 에 깨끗한 checkpoint 6 개 있었음.
# Reflog 가 fine resolution. Bisect 가 어느 거나 분리 가능.
리듬을 위한 도움 alias·bash
# 빠른 status:
git config --global alias.s 'status -sb'

# 예쁜 graph log:
git config --global alias.lg 'log --oneline --graph --decorate --all'

# Interactive add + commit (일상 습관):
git config --global alias.cap '!git add -p && git commit'

# 메시지 안 바꾸고 빠른 amend:
git config --global alias.fixed 'commit --amend --no-edit'

# 가장 최근 commit 에 든 거 표시:
git config --global alias.last 'log -1 -p'

# 이제 네 루틴:
git s          # status
git add -p
git commit -m "fix(...): ..."
git lg         # graph 감상
git fixed      # 뭔가 잊었으면
git last       # 뭐 land 했는지 확인

External links

Exercise

다음 진짜 코딩 세션에서 — 최소 한 시간 작업 — 모든 일관된 checkpoint 마다 진짜 메시지로 일부러 commit. 한 시간 세션에 최소 commit 5 개 목표. 세션 후 branch 에 git log --oneline 돌리고 결과 읽어. 리듬이 어색했는지, 큰 commit 하나로 거의 미끄러진 곳 어디인지, 결과 log 가 3 개월 후 너에게 뭘 의미할지 적어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.