#훌륭한습관 코드 commit(submit, check-in) 전에 diff
소스 코드 commit 전에 항상 모든 파일 diff를 확인한다. 하나하나 확인하는 과정에서 commit 메시지를 적는다. 이렇게 해야 자세하고 정확하게 적을 수 있기 때문이다. 그리고 이 과정에서 변경 사항과 관련 없는 부분을 되돌린다. 또한, 수정이 없거나 공백만 바뀐 파일은 이 과정에서 다 쳐낸다.
commit 창에 diff를 기본으로 보여주는 프로그램(예. GitHub for Windows)은 자연스럽게 이런 습관을 만들어준다. diff 확인이 commit 전에 하는 당연한 행동이 되는 것이다. 훌륭한 습관을 만드는데, 사용하는 프로그램이 많은 영향을 끼친다.
난 의식적으로 반복하며 습관을 만들었다. 그때까지 써 본 버전 컨트롤 시스템은 SVN, Alienbrain, Perforce로 commit 창에 diff를 보여주는 클라이언트 프로그램이 없었다. 계기는 뻔해. 몇 번 X돼보면 필요성을 느낀다. 엄한 것까지 같이 commit. 이런 경험은 다들 있지 않을까? 그리고 과거에 작업한 기록을 보기 위해 history를 뒤지는데, 변경 사항이 없는 revision. 거기에 commit comment는 엄한 게 적혀있는 거지. 난 이런 실수를 자주 해서 그때부터 이런 습관을 만들었다. 난 프로그래머는 소스코드가 아니라 diff를 남긴다고 생각한다.
이렇게 하나하나 diff를 확인해도 간혹 실수한다. 확인 과정을 거쳐도 이럴진대, diff를 안 하고 commit을 하는 건 패기가 있어야 한다.