Commit-Messages schreiben: So fasst die KI Ihren Diff zusammen
Diese Funktion liest einen Git-Diff und erzeugt daraus eine passende Commit-Message, die zusammenfasst, was sich geändert hat und warum. Gedacht für alle, die im Alltag zu knappe oder uneinheitliche Commit-Messages schreiben und stattdessen eine nachvollziehbare Historie im Repository aufbauen möchten.
Online ausführen
Führen Sie dies mit Ihrem Konto auf unseren Servern aus. Kostenlose Tools laufen in Ihrem Browser; dieses wird zum oben genannten Preis von Ihrem KIT-Guthaben abgebucht.
Vom Diff zur fertigen Nachricht
Sie fügen den Diff der geänderten Dateien ein; die Funktion erkennt, welche Art von Änderung vorliegt – neue Funktion, Fehlerbehebung, Refactoring, Dokumentation – und erzeugt daraus eine kurze, präzise Commit-Message mit Betreffzeile und, bei umfangreicheren Änderungen, einem erklärenden Textkörper. Die Betreffzeile bleibt bewusst kurz und aussagekräftig, damit sie sich in der Git-Historie und in Werkzeugen mit begrenzter Zeichenanzahl vollständig lesen lässt, ohne mitten im Satz abgeschnitten zu werden.
Conventional Commits, wenn gewünscht
Auf Wunsch folgt die erzeugte Nachricht dem Format Conventional Commits, also mit vorangestelltem Typ wie feat, fix oder refactor und optionalem Bereich in Klammern. Das erleichtert die automatische Erstellung eines Änderungsprotokolls und passt zu Projekten, die bereits nach diesem Schema versionieren. Projekte, die dieses Format nicht verwenden, erhalten stattdessen eine klassische, freie Formulierung, ohne vorangestellten Typ und ohne erzwungene Struktur.
Was in der Nachricht landet – und was nicht
Die Funktion beschreibt, was sich im Code geändert hat, nicht, warum eine fachliche Entscheidung getroffen wurde – dieser Kontext bleibt Aufgabe der Person, die committet, etwa durch Ergänzung eines Satzes zum fachlichen Hintergrund oder eines Verweises auf ein Ticket. Ohne diese Ergänzung liest sich die Nachricht technisch korrekt, aber ohne Begründung. Wer regelmäßig auf ein Ticketsystem verweist, kann die Ticketnummer vor der Erzeugung der Nachricht mitgeben, sodass sie direkt in die Betreffzeile oder den Textkörper übernommen wird.
Preis pro Diff
Eine erzeugte Commit-Message kostet $0.003 Grundgebühr plus $0.0135, insgesamt rund $0.017 pro Diff. Über die API lässt sich die Funktion als Git-Hook einbinden, der vor jedem Commit einen Vorschlag liefert, den die Entwicklerin oder der Entwickler übernehmen oder anpassen kann. Bei mehreren Commits am Tag bleibt der monatliche Betrag überschaubar, insbesondere im Vergleich zu der Zeit, die eine sorgfältig formulierte Nachricht von Hand kostet.
Anwendungsfälle
Einheitliche Historie in einem wachsenden Team
Die Schneider IT-Systeme GmbH & Co. KG bindet die Funktion als Git-Hook ein, damit alle Commits unabhängig davon, wer sie schreibt, demselben Format folgen und sich die Historie später leichter durchsuchen lässt.
Schnell committen nach einer langen Session
Jonas Weber lässt sich nach einer längeren Coding-Session, in der sich viele kleine Änderungen angesammelt haben, für jeden logischen Block eine passende Commit-Message vorschlagen, statt selbst jede Formulierung zu suchen.
Automatisches Änderungsprotokoll aus Conventional Commits
Ein Entwickler nutzt die Funktion, um konsequent im Conventional-Commits-Format zu committen, damit sich daraus am Ende jedes Sprints automatisch ein Änderungsprotokoll erzeugen lässt.
Häufige Fragen
Wird mein Diff gespeichert?
Nein. Der eingereichte Diff wird nur zur Erstellung der Commit-Message verwendet und danach nicht gespeichert.
Unterstützt die Funktion das Format Conventional Commits?
Ja, auf Wunsch mit Typ wie feat, fix oder refactor und optionalem Bereich in Klammern.
Erklärt die Nachricht auch, warum eine Änderung gemacht wurde?
Nur teilweise. Die Funktion beschreibt, was sich geändert hat; den fachlichen Hintergrund ergänzt am besten die Person, die committet.
Was kostet eine erzeugte Commit-Message?
$0.003 Grundgebühr plus $0.0135, insgesamt rund $0.017 pro Diff.
Lässt sich das als Git-Hook automatisieren?
Ja, über die API. Ein Hook kann vor jedem Commit automatisch einen Vorschlag abrufen.
Brauche ich ein Konto?
Nein. Es gibt derzeit keine Konten – Sie zahlen pro Diff, direkt über PayPal.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/commit-message \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/commit-message", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/commit-message",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/commit-message", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/commit-message", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"input": "…"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.commit_message",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
422 | task_failed | Die Aufgabe ist fehlgeschlagen und wird nicht berechnet. |