Ich war der einzige Verfasser des TXR-Projekts und habe von Anfang an ein detailliertes ChangeLog geführt. Dies sind fast 11.000 Zeilen, die zunehmen:
http://www.kylheku.com/cgit/txr/tree/ChangeLog
(Die Commit-Nachrichten im Repo sind nur eine Kopie dessen, was im ChangeLog steht.)
[Bearbeiten von 2016: Ab Mitte 2015 verwalte ich keine ChangeLog-Datei mehr. Die Festschreibungsnachrichten werden jedoch in einem Format geschrieben, das gleichzeitig den Git- und ChangeLog-Konventionen entspricht. Der gleiche Detaillierungsgrad ist vorhanden, ohne dass Zusammenführungsprobleme auftreten. Aus diesen Kommentaren kann eine ChangeLog-Datei mechanisch rekonstruiert werden.]
Ja, ich bin mehr als einmal zu einer alten Commit-Nachricht zurückgekehrt, die mit einer Änderung in Verbindung gebracht wurde, die etwas kaputt gemacht hat (mithilfe von aufgedeckt git bisect
). Die Nachricht half mir zu verstehen, was ich tat.
Im ChangeLog können Sie erkennen, wann eine Funktion, ein Typ, ein Makro oder eine globale Variable zum ersten Mal eingeführt wurde und wann sie anschließend von Änderungen berührt wurde.
Der Hauptgrund für das Schreiben von detaillierten Commit-Nachrichten wie diesen, wenn Sie alleine arbeiten, ist folgender: Sie finden dabei Fehler .
Das Schreiben einer detaillierten Festschreibungsnachricht hat ähnliche Vorteile wie eine Codeüberprüfung Ihrer Festschreibung durch eine andere Person. Der Wert in einer Commit-Überprüfung ist nicht so sehr, dass jemand Ihren Code überprüft, sondern dass Sie Ihre Änderungen einem anderen Entwickler erklären müssen.
Wenn Sie versuchen, Dinge zu erklären, stellen Sie manchmal fest, dass sie keinen Sinn ergeben.
Ein weiterer Grund: Sie können sich dabei ertappen, eine nutzlose Änderung vorzunehmen . Wenn Sie einen detaillierten Festschreibungskommentar verfassen, erhalten Sie einen umfassenden Überblick über Ihre Aktivitäten, und manchmal werden Sie mit der Tatsache konfrontiert, dass es sich nicht um eine gute Änderung handelt.
Ich habe manchmal Änderungen vorgenommen, als ich während des Schreibens des ChangeLog-Eintrags feststellte, dass dies eher ein git reset --hard
( Wegwerfen dieser nutzlosen Änderungen) als ein ( Wegwerfen dieser nutzlosen Änderungen) sein würde git commit -a
.