Ich bin ein gewohnheitsmäßiger Committer und habe festgestellt, dass das zu mir passt, aber zugegebenermaßen sind meine Commit-Nachrichten fast immer wie folgt:
Age: 9 mins [*] Working on implementing and testing PaintSystem.
Age: 17 mins [*] Working on implementing and testing PaintSystem.
Age: 37 mins [*] Working on implementing and testing PaintSystem.
Age: 52 mins [*] Working on implementing and testing PaintSystem.
Daher kann ich nicht genau sagen, dass solche häufigen und gewohnheitsmäßigen Festschreibungen für meinen Zweig (Quecksilber) genau die detailliertesten Festschreibungsprotokolle gefördert haben. Manchmal gebe ich sogar Code zur Hälfte ein, wenn meine Frau mich zum Abendessen auffordert. Dann kopiere ich die vorherige Commit-Nachricht "Working on [...]" und verwende sie.
Meine Commit-Log-Muster sind in der Regel wie folgt: "Working on [...] Working on [...] Working [...] Completed [...] Started working on [...] Working on [...] Completed [...] Started working on [...]"
Auf der anderen Seite hat es meinen Hintern gerettet. Manchmal stoße ich auf einen Randfall, den ich nicht vorhergesehen und getestet habe. An diesem Punkt helfen mir die häufigen Commits, herauszufinden, wo genau ich den Fehler eingeschleust habe.
Ich kenne die besten Gewohnheiten nicht und bin sicherlich nicht derjenige, der sich die idealen Commit-Protokollierungsgewohnheiten ansieht, aber ich kann mit Sicherheit sagen, dass ein häufigeres Commit auf jeden Fall hilfreich sein kann, wenn Sie eine Regression durchführen müssen.
Sollte jede einzeilige Änderung ein Commit erhalten?
Ich habe vorher einzeilige Änderungen vorgenommen, aber normalerweise schwierige, und vielleicht hatte ich zu wenig Zeit. Meine Verpflichtungen ähneln nicht immer perfekten und vollständigen Arbeitseinheiten oder Veränderungen. Wie gesagt, manchmal sind sie nur das Ergebnis meiner Frau, die mich unerwartet zum Abendessen auffordert.
Viele meiner Commits, die diesem "Working on [...]"
Protokollmuster folgen, sind keine kohärenten Veränderungseinheiten (weshalb ich mir oft keine bessere Botschaft einfallen lassen kann als "Working on [...]"
), sondern nur das Ergebnis einer Verschnaufpause, als würde ich mir eine Tasse Kaffee machen. Die "Completed [...]"
Nachricht zeigt das Ende dieser Arbeitseinheit an, und dort schreibe ich oft eine viel detailliertere Nachricht zusammen mit den "Started working on [...]"
Nachrichten des ersten Typs, wenn ich gerade anfange, an etwas zu arbeiten. Wenn Sie durchschnittlich alle 15 Minuten Commits durchführen, sind diese [...] "Arbeiten an" -Nachrichten eher wie Zwischenmeldungen für das, was jemand in einem umfangreichen Commit mit einer detaillierteren Nachricht festschreibt.
Sollte ich mich vor einem Test verpflichten (zB zumindest für Syntax- / Kompilierungsfehler und muss es dann komplett rückgängig machen; da die Idee nicht funktioniert hat oder die Nachricht eine Lüge ist)?
Ich gehe einfach vor und lege es fest, bevor ich manchmal sogar Tests durchführe (erneut, wenn ich ein unerwartetes Ereignis hatte). Auch wenn ich alleine bin, drücke ich auf einen Server (nur einen, der hier zu Hause in einem LAN läuft), der CI ausführt. Das mag übertrieben erscheinen, aber keine Ahnung, ich habe mich daran gewöhnt, mich an meinen früheren Arbeitsplätzen darauf zu stützen. Außerdem möchte ich nicht jedes Mal alle Geräte- und Integrationstests von Hand ausführen müssen. Ich mag es, wenn das alles nur mit Druck zu tun hat. Wenn ein Test fehlschlägt, ist es einfach genug, vorwärts zu arbeiten, wo ich die Regression durchführe, den Fehler in der letzten Version zu korrigieren und weiterzumachen. Das heißt, ich erstelle den Code gegen einen Debugbuild, bevor ich festschreibe.
Sollte ich sicherstellen, dass ich mich jeden Morgen / Nachmittag verpflichte, bevor ich aufhöre, zum Abendessen zu arbeiten, solange es noch frisch ist?
Ich setze mich gerne ein, bevor ich rausgehe und eine Pause zwischen dem Programmieren mache. Ich habe nicht wirklich darüber nachgedacht, warum genau, bis ich auf diese Frage gestoßen bin. Ich nehme an, es soll verhindern, dass ich dort, wo ich aufgehört habe, ohne ein Commit-Protokoll weitermache, anstatt dort, wo ich aufgehört habe, dass ich mich unterscheiden kann und so weiter. Hmm, ich muss darauf zurückkommen, da es theoretisch vielleicht nicht nötig ist, wenn man bedenkt, wie oft ich mich verpflichte. Ich fühle mich immer noch wohler beim Festlegen und Schieben, bevor ich den Computer aus irgendeinem Grund verlasse. Einiges davon könnte die frühere psychologische Angst vor, sagen wir, Der Computer brennt, nachdem ich gegangen bin und Projektmanager in den Tagen, in denen wir SVN mit den Entwicklern verwendet haben, manchmal wochenlang beschäftigt waren, ohne uns den Hals runterzureißen und uns ständig daran zu erinnern, den Code so oft wie möglich einzuchecken, während wir uns daran erinnern Unser Code ist Eigentum des Unternehmens. Es ist auch ein bisschen effizienter, vor allem beim Pushing, damit mein CI-Prozess alle Tests ausführen kann, während ich nicht da bin, damit ich zurückkehren und die Ergebnisse sehen kann.
Oh, und manchmal betrinke ich mich nach meiner Abreise etwas und es ist normalerweise eine schlechte Idee, zu versuchen, komplexen Code zu schreiben, während ich mich betrunken fühle (wenn auch nicht immer). Einmal hatte ich ein wirklich nettes Kontextmenüsystem, nachdem ich mich betrunken hatte. aber ich hatte nur 6 Bier und es war nicht so komplex zu codieren). Wenn ich das versuche, habe ich zumindest den nüchtern geschriebenen Code festgeschrieben, bevor ich ging, um zurückzukehren, anstatt den betrunkenen Code mit dem nüchternen Code zu mischen. An diesem Punkt könnte mein Festschreibungsprotokoll so lauten, dass "Reverting back to code written before Jagermeister shots."
ich das nicht tue Sehr häufig, es sei denn, ich hatte eine betrunkene Code-Inspiration, aber in diesen seltenen Fällen hat es wirklich geholfen, dass ich etwas begangen habe, bevor ich ausgegangen bin und mich betrunken habe.