Conventional Commits sind ein einfacher Standard für Commit-Nachrichten in Git, der ein konsistentes Format für alle Commits vorschlägt. Dies erleichtert die Automatisierung von Aufgaben wie der Versionskontrolle (Versioning), der Changelog-Erstellung und der Rückverfolgung von Änderungen.
Das Format der Conventional Commits besteht aus einer speziellen Struktur der Commit-Nachricht, die typischerweise folgendermaßen aussieht:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Type (Pflichtfeld): Beschreibt die Art der Änderung im Commit. Es gibt standardisierte Typen:
Scope (optional): Beschreibt den betroffenen Teil des Codes oder der Anwendung, z. B. ein Modul oder eine Komponente.
fix(auth): corrected password hashing algorithmDescription (Pflichtfeld): Eine kurze, prägnante Beschreibung der Änderung. Diese sollte in der Gegenwartsform formuliert sein (z. B. „add feature“ statt „added feature“).
Body (optional): Eine ausführlichere Beschreibung der Änderung. Dies kann genutzt werden, um mehr Kontext oder technische Details anzugeben.
Footer (optional): Hier können Hinweise zu Breaking Changes oder Referenzen zu Issues oder Tickets stehen.
BREAKING CHANGE: remove deprecated authentication methodfeat(parser): add ability to parse arrays
The parser now supports parsing arrays into lists.
This allows arrays to be passed as arguments to methods.
BREAKING CHANGE: Arrays are now parsed differently
Conventional Commits sind besonders in Projekten hilfreich, die SemVer (Semantic Versioning) verwenden, da sie es ermöglichen, automatisch neue Versionen basierend auf Commit-Typen zu erstellen.
Ein Interactive Rebase ist eine erweiterte Funktion des Versionskontrollsystems Git, mit der du mehrere Commits in einem Branch überarbeiten, neu anordnen, zusammenführen oder löschen kannst. Im Gegensatz zu einem normalen Rebase, bei dem die Commits einfach auf einen neuen Basis-Commit „umgehängt“ werden, bietet ein interaktiver Rebase die Möglichkeit, jeden Commit in der Rebase-Reihe individuell zu bearbeiten.
main oder master) kannst du die Commit-Historie bereinigen, indem du unnötige Commits zusammenführst oder entfernst.Angenommen, du möchtest die letzten 4 Commits eines Branches bearbeiten, führst du folgendes Kommando aus:
git rebase -i HEAD~4
1. Auswahl der Commits:
pick markiert, gefolgt von der Commit-Nachricht.Beispiel:
pick a1b2c3d Commit message 1
pick b2c3d4e Commit message 2
pick c3d4e5f Commit message 3
pick d4e5f6g Commit message 4
2. Bearbeiten der Commits:
pick-Befehle durch andere Schlüsselwörter ersetzen, um verschiedene Aktionen durchzuführen:
pick: Behalte den Commit unverändert.reword: Ändere die Commit-Nachricht.edit: Stoppt das Rebase, damit du Änderungen am Commit vornehmen kannst.squash: Kombiniere den Commit mit dem vorherigen.fixup: Kombiniere den Commit mit dem vorherigen, ohne die Commit-Nachricht zu behalten.drop: Entferne den Commit.Beispiel für eine bearbeitete Liste:
pick a1b2c3d Commit message 1
squash b2c3d4e Commit message 2
reword c3d4e5f New commit message 3
drop d4e5f6g Commit message 4
3. Speichern und Ausführen:
4. Konflikte lösen:
git rebase --continue fortsetzen.Interactive Rebase ist ein mächtiges Werkzeug in Git, das es ermöglicht, die Commit-Historie zu bereinigen, zu reorganisieren und zu optimieren. Es erfordert etwas Übung und Verständnis der Git-Konzepte, bietet aber eine große Flexibilität, um die Geschichte eines Projekts klar und nachvollziehbar zu gestalten.