저는 TXR 프로젝트의 유일한 커미터였으며 프로젝트 초기부터 자세한 ChangeLog를 유지했습니다. 이것은 11,000 줄에 가깝고 성장하고 있습니다 :
http://www.kylheku.com/cgit/txr/tree/ChangeLog
(리포지토리의 커밋 메시지는 ChangeLog에있는 내용의 복사본 일뿐입니다.)
[2016 년 편집 : 2015 년 중반부터 더 이상 ChangeLog 파일을 유지 관리하지 않습니다. 그러나 커밋 메시지는 동시에 Git 및 ChangeLog 규칙을 준수하는 형식으로 작성됩니다. 병합 문제를 일으키지 않는 방식으로 동일한 수준의 세부 사항이 있습니다. 이 주석에서 ChangeLog 파일을 기계적으로 재구성 할 수 있습니다.]
예, 한번 이상 변경 사항과 관련된 오래된 커밋 메시지로 돌아갔습니다 (의 도움으로 발견되지 git bisect
않음). 이 메시지는 내가하고있는 일을 이해하는 데 도움이되었습니다.
ChangeLog에서 함수, 유형, 매크로 또는 전역 변수가 처음 도입 된 시점과 이후 변경 사항이 발생한 시점을 알 수 있습니다.
그러나 스스로 작업 할 때 이와 같은 자세한 커밋 메시지 를 작성하는 주된 이유 는 다음과 같습니다 .
자세한 커밋 메시지를 작성하면 다른 사람이 커밋을 코드 검토하는 것과 비슷한 이점이 있습니다. 커밋 검토의 가치는 누군가가 코드를 확인하는 것이 아니라 변경 사항을 다른 개발자에게 설명해야합니다.
설명하려고 할 때 때로는 이해가되지 않는 것을 알게됩니다.
또 다른 이유 : 쓸모없는 변화를 겪을 수 있습니다 . 자세한 커밋 주석을 작성하면 현재 수행중인 작업에 대한 높은 수준의 관점을 파악한 다음 때때로 좋은 변경이 아니라는 사실에 직면하게됩니다.
ChangeLog 항목을 작성하는 도중에 이것이 git reset --hard
변경되는 대신 (이 쓸모없는 변경 사항을 버리는) 것을 깨달았 습니다 git commit -a
.