Wenn Sie ein DVCS verwenden, sollten Sie sich sehr oft festlegen. Ich schreibe jedes Mal fest, wenn sich mein Code in einem stabilen Zustand befindet, der nicht mit Codezeilen zusammenhängt. Sie möchten einen Baum mit vielen kleinen atomaren Commits, mit denen Sie leicht erkennen können, was Sie in den einzelnen Commits getan haben. Wenn Sie versuchen, eine Regression aufzuspüren, die Sie beim Testen gefunden haben, ist es viel einfacher, eine binäre Suche durchzuführen und das genaue Commit aufzuspüren, da Sie weniger Änderungen pro Commit haben. Ich verpflichte mich nur, wenn mein Code kompiliert wird. Meine Vorstellung von "atomar" ist, dass er kompiliert, die Regressionstests besteht und einen schnellen Integrationstest besteht. Manchmal ist ein Komponententest enthalten, manchmal nicht.
Wenn Sie pushen, sollten Sie ganze Funktionen pushen. Der Rest der Welt möchte nicht, dass Ihre "verpassten Eincheckvorgänge in dieser Datei" jeden Tag begangen werden. Mit Git rebase
können Sie Ihren Commit-Baum bereinigen, indem Sie mehrere Commits zusammenfassen. Die Community scheint sich nicht sicher zu sein, wie viel Geschichte Sie begehen sollten. Ich würde sagen, Sie sollten die Commits zusammenfassen, die keinen Verlauf anzeigen, wie "verpasste Datei" oder "dumme Regression". Sie möchten eine so saubere Geschichte wie möglich präsentieren, damit jeder leicht sehen kann, was Sie getan haben.
In einem zentralen Versionskontrollsystem müssen Sie viel mehr festlegen, wenn Sie eine gute Historie führen möchten. Ich empfehle, dass Sie an kleineren Funktionen arbeiten und diese so oft wie möglich ausführen, bevor Sie sich verpflichten. Ihr Konzept von "atomar" sollte hier eine Funktion sein, die funktioniert und getestet wird. Sie möchten nichts festlegen, das die Arbeitsbereiche anderer Entwickler beschädigt, da diese häufig aktualisiert werden und es viel schwieriger ist, an unabhängigen Funktionen zu arbeiten, die sich überschneiden. Sie werden weniger festschreiben, aber diese Festschreibungen sind normalerweise fleischiger als Ihr durchschnittliches DVCS.
Sie können sehen, dass das Verhältnis von Codezeilen zu Anzahl der Commits davon abhängt, wie groß Ihre Funktionen sind und welchen Workflow Sie verwenden. Ihr Workflow hängt davon ab, welches Versionskontrollsystem Sie verwenden. Daher können Sie im Allgemeinen nicht vorhersagen, wie Ihre Commits aussehen werden. Jede Institution hat ihren eigenen Standard und sollte selbst bestimmen, wie ihr Workflow im Idealfall aussehen soll.