Warum sollte ich eine Commit-Nachricht schreiben? Ich will nicht und ich finde es jedes Mal dumm.
Ein GUI-Frontend, das ich benutze und das unbenannt bleibt, zwingt Sie dazu. Ich höre jedes Mal andere, die das tun, auch wenn sie das VCS in der Befehlszeile verwenden.
Wenn ich mehrmals am Tag einen Commit durchführe und ein Feature noch nicht fertiggestellt habe, worüber schreibe ich dann? Ich schreibe NUR nach vielen Commits eine Nachricht und ich habe das Gefühl, es ist Zeit für einen Mini-Tag oder wenn ich einen tatsächlichen Tag mache.
Habe ich recht oder vermisse ich etwas? Ich benutze auch ein verteiltes System
dvcs
version-control
user2528
quelle
quelle
Antworten:
Um alle Leute sagen : „verpflichten nur , wenn Sie eine nützliche, dachte gut Nachricht zu schreiben, und wenn Ihre Funktion 100% abgeschlossen ist, und Sie haben Unit - Tests für sie“, sage ich: Du bist immer noch in der SVN - Mentalität .
Wenn Sie Git verwenden , würde ich das als intelligenten Workflow bezeichnen:
git rebase -i
Vom ersten 'chaotischen' Commit an haben Sie Ihren lokalen Verlauf hinzugefügt und korrigiert, indem Sie ihn gequetscht, bearbeitet, weggelassen und auf andere Weise in logische, saubere Commits mit netten Nachrichten aufgeräumt haben .Beachten Sie, dass Sie in Schritt 3 die netten Commits erhalten, nach denen Sie gesucht haben, und dass Sie bei Verwendung von SVN auf das Commit verzichten müssen, bis Sie die ersten beiden Schritte ausgeführt haben. Dies wird in den meisten anderen Antworten vorgeschlagen. IOW, Sie möchten anderen nicht Ihren halbgeschriebenen, ungetesteten Code zufügen, so dass Sie sich eine Woche lang nicht festlegen, bis Ihr Feature fertig ist. Sie nutzen die Versionskontrolle nicht in vollem Umfang.
Beachten Sie auch, dass Sie zwischen Schritt 1 und 3
git push
Ihre Änderungen an Ihrem eigenen privaten Repo-Spiegel auf dem Server vornehmen können , um kostenlose Backups zu erhalten, wenn die Festplatte Ihres Laptops ausfällt.quelle
Denn wenn ein armer Betreuer einen Fehler sucht und feststellt, dass er in rev hinzugefügt wurde. xyz, er wird wissen wollen, was rev. xyz sollte das tun.
quelle
Sie kommentieren Ihren Quellcode, richtig?
Sie schreiben die allerbesten Kommentare, diejenigen, die sagen, warum, wie der Code nur sagt, wie ?
Die Festschreibungsnachricht ist ein solcher Kommentar, und daher ist sie sehr wichtig. Je mehr Sie sich Gedanken machen, umso nützlicher ist sie für einen zukünftigen Softwarewarter.
Für jede aktive Software wird dieser spezielle Kommentar in etwa angezeigt
(gefunden unter http://longair.net/blog/2009/04/25/a-few-git-tips/ ). So können Sie aus der Vogelperspektive sehen, wer wann an der Software gearbeitet hat und was sie getan hat.
Beachten Sie, dass dies das ultimative Ziel für den Commit-Kommentar ist, nämlich in einer solchen Liste das " Was " für Ihr zukünftiges Ich oder Ihren Kollegen anzuzeigen, und DAS ist der Grund, warum Sie darauf achten sollten, gute Commit-Nachrichten zu schreiben.
quelle
Wenn die Festschreibungsmeldung für Sie dumm erscheint, scheint es, als würden Sie falsche Festschreibungen verwenden.
Commits sollten aus gutem Grund erfolgen - sie sollten sich auf Aufgaben beziehen, die Sie für die Funktion, an der Sie arbeiten, aufgeschlüsselt haben. Unabhängig davon, ob diese Aufgaben formal sind oder nur in Ihrem Kopf, sollte jede Änderung, die Sie vornehmen, eine Aufgabe mehr oder weniger abschließen und daher in irgendeiner Weise funktionsfähig sein.
Dann erfüllen Ihre Commit-Nachrichten einen viel besseren Zweck. Beschreiben Sie die Aufgabe, die Sie erledigt haben, und wenn sie nicht an einer anderen Stelle verfolgt wurde, warum diese Aufgabe benötigt wurde oder welchen Zweck sie erfüllt:
Dann können Sie oder andere Entwickler das Repository oder den Dateiversionsverlauf durchsuchen und ziemlich einfach feststellen, wo und warum bestimmte Entwicklungen stattgefunden haben. Wenn sich herausstellt, dass eine bestimmte Revision eines Fehlers schuldig ist, gibt die Festschreibungsmeldung einen Hinweis darauf, warum diese Zeile eingefügt wurde, damit Sie sie nicht einfach herausreißen und möglicherweise etwas neu brechen, das für möglich gehalten wurde behoben, und Sie können es stattdessen auf die richtige Weise beheben.
quelle
Commit-Kommentare lösen nicht alles. Es besteht immer die Möglichkeit, dass sie so viel irreführen , wie sie helfen - vor allem, wenn Entwickler wütend sind, sie eingeben zu müssen. Versuchen Sie Folgendes: Betrachten Sie sie als eine Brotkrümelspur im Wald oder als einen Wegpunkt zum Bergsteigen oder als Markierungskugeln. Richtig gemacht, können sie einen ansonsten verwirrenden Weg skizzieren.
Machen Sie keine große Sache aus ihnen. Sei ehrlich:
Halten Sie es kurz und "Big Picture". Wenn möglich, beziehen Sie sich auf eine Problemnummer in Ihrem Feature / Bug-System. Einige Versionskontroll-Benutzeroberflächen enthalten ein Feld für diese Art von Dingen.
quelle
Es reduziert die Anzahl der WTF / Minute;)
Dies führt zu einem glücklicheren Team (das Sie nicht hasst) und einer besseren Teamleistung, möglicherweise zu geringeren Kosten
quelle
Der Rest Ihres Teams weiß also, dass WTF Änderungen am Projektbaum eincheckt.
quelle
denn wenn Sie nicht üben, anständige Commit-Nachrichten einzugeben, werden Sie wie mein Kollege enden, der Nachrichten wie eingibt
oder
für Commits mit über hundert geänderten Dateien (kein Scherz hier !!).
Wenn Sie solch ein Entwickler werden, werden Sie in den Augen des Rests der Welt dumm aussehen, egal wie dumm Sie es finden, einfach eine Nachricht einzugeben.
quelle
Warum verpflichten Sie sich, wenn die Änderungen nicht aussagekräftig sind?
Übernehmen Sie einfach Änderungen, die eine Bedeutung haben. ZB habe ich in der letzten Woche ein ziemlich umfangreiches Refactoring durchgeführt, was mich ungefähr 3 Tage gekostet hat. In dieser Zeit hätte ich jede Menge Verpflichtungen. Einige waren eher geringfügige Änderungen ("Klasse X in Y umbenannt, um neue Verantwortung widerzuspiegeln" oder "Methode Z verschoben () in Klasse Q"), andere waren sehr umfangreich. Wenn ich mit einem Feature / Refactoring fertig bin, überprüfe ich, ob einige Commits gequetscht werden konnten (zumindest unterstützt git das, weiß nichts über andere Tools), aber normalerweise lasse ich sie so, wie sie sind, weil es später hilft.
Ich vermute, Sie würden sich nicht mitten in der Bearbeitung einer Zeile festlegen, daher sollte dies eine Bedeutung haben. Beschreiben Sie einfach, was Sie seit dem letzten Commit getan haben.
quelle
Stellen Sie sich eine Situation vor, in der Sie Ihr System durch eine Änderung kaputt gemacht haben, und stellen Sie dies nach mehreren Team-Commits fest. Sie erinnern sich nicht an die Änderung, aber Sie erinnern sich, dass beim Verbessern von Feature X oder beim Entfernen einer Datei aus Modul Y etwas schief gehen könnte.
Die Versionsnummer gibt jedoch leider keinen Aufschluss darüber, wann Sie X oder Y geändert haben. Sie können also entweder alle Codes lesen, die in den letzten N Tagen festgeschrieben wurden, oder nur detaillierte Festschreibungsmeldungen lesen, die Sie geschrieben haben (viel besser lesbar als Code).
Wenn Sie also den gleichen, langweiligen, nutzlosen, nicht verwandten Text in eine Festschreibungsnachricht schreiben, ist dies schädlicher, als wenn Sie eine Festschreibungsnachricht haben. Denn anstatt die Wurzel des Fehlers zu finden, werden Sie durch eine falsche Nachricht in die Irre geführt.
Schreiben Sie also bei jedem Commit sinnvolle Commit-Nachrichten, die Ihnen und dem Maintainer ebenfalls helfen können.
quelle
Wenn Sie mit anderen zusammenarbeiten, ist es sehr wichtig, dass Sie Nachrichten festschreiben, um tatsächlich zu sehen, was andere getan haben: Das Nachschlagen der Unterschiede für jeden von ihnen ist viel arbeitsintensiver, und Sie können möglicherweise nicht nachvollziehen, warum jemand dies getan hat. Wenn Sie mit anderen zusammenarbeiten und jemand (vielleicht nicht Sie) zurückblicken muss, um beispielsweise zu verfolgen, wie sich das Verhalten gegenüber der vorherigen Version auf unerwartete Weise geändert hat, machen Sie sich das Leben wirklich schwer, indem Sie keinen hilfreichen Hinweis im Commit verwenden Botschaft.
Wenn Sie alleine arbeiten ... an einem Projekt, das größtenteils "so wie es ist" codiert ist (zum Beispiel eine einzelne einfache Website oder ein Skript), kann ich mehr oder weniger sehen, woher Sie kommen. Wenn ich an so etwas arbeite, kümmert es mich nur um das Datum / die Uhrzeit oder die letzten Änderungen, wenn ich an etwas weiterarbeite (Sie müssen einen Punkt wiederherstellen, aber das ist nur während der Entwicklung von Bedeutung, nicht nachdem Sie es implementiert haben). Die Versionskontrolle ist nur ein Weg, um Backups mit ein paar Pluspunkten zu erstellen - ich stimme voll und ganz zu, dass das System nicht vollständig genutzt wird -, aber bei einigen kleinen Projekten ist dies möglicherweise nicht erforderlich.
Der Gedanke ist mir gekommen, bevor die Versionskontrolle auf zwei unterschiedliche Arten verwendet wurde: als Dokumentation von Änderungen im Projekt und als Hilfestellung für die vorhandenen Entwickler ... und diese beiden unterscheiden sich grundlegend voneinander. Commit-Nachrichten sind in der einen Hinsicht sehr wichtig und in der anderen Hinsicht möglicherweise meistens unbrauchbar.
quelle
Du verpasst was. Es muss einen Grund für die Ausführung eines Commits geben, sonst würden Sie es nicht tun.
Alles, was Sie im Kommentar tun müssen, ist, den Grund in Worte zu fassen, auch wenn es nur so ist
wip: adding new state objects
quelle
Wie viele andere auch, programmiere ich in meiner Freizeit ein bisschen und verwende ein Revisionskontrollsystem, um meine Entwicklung und Änderungen zu verfolgen. Die Menge an Freizeit, die ich zur Verfügung habe, variiert stark von Woche zu Woche und von Monat zu Monat. In vielen Fällen hatte ich wochen- oder sogar monatelang keine Zeit, Code für ein Projekt zu schreiben, und die Zeitspanne, die ich bisher hatte, lag normalerweise zwischen 10 Minuten (typischer Tag) und 40 Minuten (guter Tag). Das sind sicher keine guten Voraussetzungen - vor allem für Debugging-Probleme.
Es war wichtig, Notizen aufzubewahren, die nicht verloren gingen und leicht abzurufen waren. Am Ende jeder Sitzung wird die Arbeit der Sitzung mit einer detaillierten Meldung festgeschrieben. Ich könnte dann die Commit-Historie durchgehen und meinen Fortschritt und Gedankenprozess verfolgen. Dadurch konnte ich mit der geringsten Menge an verlorener kostbarer Zeit dort weitermachen, wo ich letzte Woche oder letzten Monat war.
Der Punkt, den ich veranschaulichen möchte, ist, dass gute Commit-Nachrichten Ihnen (und allen anderen, die hinter Ihnen her sind) dabei helfen, herauszufinden, was passiert ist, was passiert ist, wo die Dinge laufen und vor allem warum.
quelle
Denken Sie eine Minute logisch darüber nach. Wenn Sie sich verpflichten, bedeutet dies, dass etwas getan wurde. Wenn Sie keine Nachricht hinterlassen, wie werden andere wissen, was getan wurde?
quelle
Wenn Sie Ihre Commits nicht kommentieren, könnten Sie versucht sein, die Änderung in der Quelle zu kommentieren. Mit der Zeit kann dies die Quelle überladen.
quelle
Commit-Nachrichten sind ein schneller Weg, um zu erfahren, was in diesem Check-in vor sich geht, und helfen anderen Entwicklern in Ihrem Team, wenn sie wissen möchten, welcher Aspekt des Codes in welchen Revisionen geändert wurde (aus möglicherweise Gründen).
In einem verwandten Hinweis würde ich vorschlagen, die Bug-Tracker-Fallnummer (ich hoffe, Sie verwenden eine) in der Commit-Nachricht anzugeben , so dass es für die Zukunft hilfreich wäre, Dinge einfach zu verfolgen.
quelle
Damit der Betreuer dieses Codes 1 Jahr später weiß, wen er für diesen schrecklichen Code aufspüren soll. :)
quelle
blame
Dafür ist das Feature des VCS da.