자주, 작고 의미있는 커밋을 만드는 가장 중요한 이유는 코드의 역사를 이해하는 데 도움이되기 때문입니다. 특히 이해하기 쉬운 diff를 생성하기 어려운 경우 코드가 어떻게 변경되었는지 이해하기가 매우 어렵습니다.
옵션 1 은 변경 한 이력을 난독 화하지만 그렇지 않으면 아무런 문제가 발생하지 않습니다.
옵션 2 는 옵션 1보다 약간 적은 변경 내역을 난독 처리하지만 커밋이 다른 것으로 가정하거나 결론을 내리면 다른 문제가 발생할 수 있습니다 (예 : 독립적으로 다른 브랜치로 병합 가능). 이것이 옵션 1보다 선호되는 강력한 실질적인 이유가 없다면, 이는 그보다 덜 이상적입니다.
옵션 3 이 가장 좋습니다. 다른 방법도 동일하지만 다른 곳에서 설명했듯이 "최고"의 시간이 필요하거나 다른 상당한 비용이 발생하는 경우 예상되는 이점과 비교하여 해당 비용을 측정해야합니다. 더 깨끗한 커밋 만들기.
제공 한 정보를 바탕으로 옵션 1을 선택했습니다. 변경 내용을 커밋하라는 알림을 설정해야합니까?
프로토 타이핑 및 재 작성
명심해야 할 또 다른 고려 사항은, 특히 유일한 프로그래머라는 메모에 비추어 볼 때 상대적으로 새로운 코드베이스로 작업하고 있다는 내 생각에 의문을 가질 때 변화를 저지르는 것과 관련하여 다른 습관을 개발하는 것이 좋을 것입니다 '새로운 코드를 프로토 타이핑하고 기존 코드를 유지하거나 확장하는 것입니다. 아마도 둘 사이에 굉장히 뚜렷한 구분은 없지만 여전히 유용한 구분이라고 생각합니다.
새 코드를 프로토 타이핑 할 때는 변경 사항을 거의 확실하게 브랜치에 저장하거나 별도의 프로젝트에 저장할 때마다 커밋하십시오. 또는 버전 관리 외부에서 모두 작동 할 수도 있습니다. 대신 고려중인 다양한 가설이나 설계의 실현 가능성에 대한 증거를 수집하는 데 집중할 수 있습니다. 필자는 종종 Visual Studio for C # 코드 대신 LINQPad와 같은 다른 도구를 사용하여 작은 프로토 타입을 작성합니다.
특정 가설이나 디자인의 유효성을 검증하면 기본 프로젝트, 이상적으로는 지사에서 다시 작성하고 변경의 본질에 대해 다른 사람 (미래를 포함하여)에 대한 이해를 도울 수있는 작고 의미있는 커밋을 만드십시오. 당신은 만들고 있습니다.