HAFTUNGSAUSSCHLUSS: Ich bin der Autor von gitchangelog, von dem ich im Folgenden sprechen werde.
TL; DR: Möglicherweise möchten Sie das eigene Änderungsprotokoll von gitchangelog oder die ASCII-Ausgabe überprüfen , die das vorherige generiert hat.
Wenn Sie ein Änderungsprotokoll aus Ihrem Git-Verlauf erstellen möchten, müssen Sie wahrscheinlich Folgendes berücksichtigen:
- das Ausgabeformat . (Reines benutzerdefiniertes ASCII, Debian-Changelog-Typ, Markdow, ReST ...)
- Einige Commit-Filter (Sie möchten wahrscheinlich nicht alle Tippfehler oder kosmetischen Änderungen in Ihrem Changelog sehen).
- Einige schreiben Text, bevor sie in das Änderungsprotokoll aufgenommen werden. (Sicherstellen, dass Nachrichten so normalisiert werden, dass sie einen Großbuchstaben oder einen letzten Punkt haben, aber möglicherweise auch ein spezielles Markup in der Zusammenfassung entfernt werden.)
- Ist dein Git-Verlauf kompatibel ? Das Zusammenführen und Markieren wird von den meisten Tools nicht immer so einfach unterstützt. Dies hängt davon ab, wie Sie Ihren Verlauf verwalten.
Optional möchten Sie vielleicht eine Kategorisierung (neue Dinge, Änderungen, Bugfixes) ...
Vor diesem Hintergrund habe ich Gitchangelog erstellt und verwendet . Es soll eine Git-Commit-Nachrichtenkonvention nutzen , um alle vorherigen Ziele zu erreichen.
Eine Konvention für Festschreibungsnachrichten ist obligatorisch, um ein schönes Änderungsprotokoll zu erstellen (mit oder ohne Verwendung gitchangelog
).
Commit-Nachrichtenkonvention
Im Folgenden finden Sie Vorschläge, wie Sie Ihre Commit-Nachrichten hinzufügen können.
Möglicherweise möchten Sie Ihre Commits grob in große Abschnitte unterteilen:
- absichtlich (zum Beispiel: neu, reparieren, ändern ...)
- nach Objekt (zum Beispiel: Dokument, Verpackung, Code ...)
- nach Publikum (zum Beispiel: Entwickler, Tester, Benutzer ...)
Darüber hinaus möchten Sie möglicherweise einige Commits markieren:
- als "kleinere" Commits, die nicht in Ihr Changelog ausgegeben werden sollten (kosmetische Änderungen, kleiner Tippfehler in Kommentaren ...)
- als "Refactor", wenn Sie keine wesentlichen Funktionsänderungen haben. Daher sollte dies nicht auch Teil des Änderungsprotokolls sein, das beispielsweise dem Endbenutzer angezeigt wird, sondern kann von Interesse sein, wenn Sie ein Entwickler-Änderungsprotokoll haben.
- Sie können auch mit "api" markieren, um API-Änderungen oder neue API-Inhalte zu markieren ...
- ...etc...
Versuchen Sie, Ihre Commit-Nachricht zu schreiben, indem Sie Benutzer (Funktionen) so oft wie möglich ansprechen.
Beispiel
Dies ist Standard, um git log --oneline
zu zeigen, wie diese Informationen gespeichert werden können ::
* 5a39f73 fix: encoding issues with non-ascii chars.
* a60d77a new: pkg: added ``.travis.yml`` for automated tests.
* 57129ba new: much greater performance on big repository by issuing only one shell command for all the commits. (fixes #7)
* 6b4b267 chg: dev: refactored out the formatting characters from GIT.
* 197b069 new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor
* 6b891bc new: add utf-8 encoding declaration !minor
Wenn Sie es bemerkt haben, habe ich folgendes Format gewählt:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Um ein tatsächliches Ausgabeergebnis zu sehen, können Sie sich das Ende der PyPI-Seite von gitchangelog ansehen
Eine vollständige Dokumentation meiner Commit-Nachrichtenkonvention finden Sie in der Referenzdatei gitchangelog.rc.reference
Wie man daraus ein exquisites Änderungsprotokoll generiert
Dann ist es ganz einfach, ein vollständiges Änderungsprotokoll zu erstellen. Sie können Ihr eigenes Skript ziemlich schnell erstellen oder verwendengitchangelog
.
gitchangelog
generiert ein vollständiges Änderungsprotokoll (mit Schnittunterstützung als New
, Fix
...) und kann angemessen nach Ihren eigenen Festschreibungskonventionen konfiguriert werden. Es unterstützt jede Art von Leistung durch Templating durch Mustache
, Mako templating
und verfügt über eine Standard - Legacy - Engine in rohem Python geschrieben; Alle aktuellen 3 Engines haben Beispiele für ihre Verwendung und können Änderungsprotokolle ausgeben, wie sie auf der PyPI-Seite von gitchangelog angezeigt werden.
Ich bin sicher , Sie wissen, dass es viele andere sind git log
zu changelog
auch Tools gibt.
--graph
, das Ihnen visuell anzeigt, in welchen Zweigen sich die Commits befinden.