Der wichtigste Grund für häufige, kleine und aussagekräftige Commits ist das Verständnis der Geschichte des Codes. Insbesondere ist es sehr schwer zu verstehen, wie sich Code verändert hat, wenn es schwierig ist, verständliche Unterschiede zu generieren.
Option 1 verschleiert den Verlauf der von Ihnen vorgenommenen Änderungen, führt jedoch ansonsten nicht zu Problemen.
Option 2 verschleiert den Verlauf der von Ihnen vorgenommenen Änderungen, möglicherweise etwas weniger als Option 1, kann jedoch andere Probleme für Sie oder andere verursachen, wenn sie annehmen oder auf andere Weise den Schluss ziehen, dass die Commits unterschiedlich sind, z. B. unabhängig voneinander in anderen Zweigen zusammengeführt werden können. Dies ist weniger ideal, es sei denn, es gibt einen starken praktischen Grund, warum dies Option 1 vorgezogen wird.
Option 3 ist am besten, da alle anderen Faktoren gleich sind. Wenn dies jedoch, wie Sie an anderer Stelle beschrieben haben, "extrem" viel Zeit in Anspruch nehmen oder andere erhebliche Kosten verursachen würde, müssen Sie diese Kosten mit den erwarteten Vorteilen von abwägen sauberere Commits erstellen.
Anhand der von Ihnen angegebenen Informationen würde ich mich für Option 1 entscheiden. Vielleicht sollten Sie Erinnerungen einrichten, die Sie auffordern, Ihre Änderungen zu übernehmen?
Prototyping und Umschreiben
Eine weitere Überlegung, die Sie berücksichtigen sollten, insbesondere angesichts Ihres Hinweises, dass Sie der einzige Programmierer sind, und meiner Vermutung, dass Sie an einer relativ neuen Codebasis arbeiten, ist, dass es wahrscheinlich gut ist, unterschiedliche Gewohnheiten zu entwickeln, um Änderungen für Sie vorzunehmen Prototyping von neuem Code statt Beibehalten oder Erweitern von vorhandenem Code. Es gibt wahrscheinlich keine besonders scharfe Trennung zwischen den beiden, aber ich denke, es ist immer noch eine nützliche Unterscheidung.
Wenn Sie einen neuen Code als Prototyp erstellen, müssen Sie die Änderungen immer dann festschreiben, wenn Sie sie speichern möchten, mit ziemlicher Sicherheit in einem Zweig, aber möglicherweise in einem separaten Projekt. Oder vielleicht sogar nur außerhalb der Versionskontrolle arbeiten. Sie können sich stattdessen darauf konzentrieren, Beweise für die Machbarkeit verschiedener Hypothesen oder Entwürfe zu sammeln, die Sie in Betracht ziehen. Ich schreibe oft kleine Prototypen mit verschiedenen Tools, z. B. LINQPad anstelle von Visual Studio für C # -Code.
Wenn Sie eine bestimmte Hypothese oder ein bestimmtes Design validiert haben, schreiben Sie es in Ihrem Hauptprojekt um, idealerweise in einem Zweig, und treffen Sie die kleinen, aussagekräftigen Festlegungen, die das Verständnis anderer (einschließlich Ihrer zukünftigen) in Bezug auf die Art der Änderungen am besten unterstützen du machst.