2015-02-25 6 views
5

Also ich bin ziemlich neu bei Git und DVCS im Allgemeinen, und ich habe überall gelesen, dass, zumindest in privaten Branchen, "es immer gut ist, die ganze Zeit zu begehen". Die Frage ist: Warum? Ich benutze SourceTree (Git-Client mit grafischer Oberfläche) und finde es viel einfacher, meinen Code zu programmieren, wenn alles funktioniert und ich fertig bin, da ich meine Diffs in SourceTree noch sehen kann, bevor ich es begehe.In Git: Warum ist es gut, oft zu begehen?

Was ist der Grund für einen häufigeren Einsatz? Und wie oft soll ich das machen?

+1

Um das Risiko von Konflikten zwischen zwei gleichzeitigen Änderungen zu minimieren und kleine Commit-Körner zu haben, können Sie leichter neu ordnen und sich bewegen. – chmike

+1

Nun, Sie können lokal "die ganze Zeit" committen und nur schieben, wenn alles funktioniert. – vikingsteve

+0

möglich Duplikat von [DVCS - Wie oft und wann Änderungen zu begehen] (http://stackoverflow.com/questions/1480723/dvcs-how-often-and-when-to-commit-changes) – Jubobs

Antwort

0

Es ist gut, oft aus dem gleichen Grund zu committen, dass es gut ist, häufige Backups zu machen. Übernehmen Sie, wenn Sie Code haben, den Sie nicht verlieren möchten, sagen Sie nach einem erfolgreichen make check.

Im Gegensatz zu den meisten zentralisierten Versionskontrollsystemen wie Subversion oder CVS können Sie nach der Fertigstellung Ihres Codes, aber bevor Sie ihn mit der Welt teilen, einen unordentlichen Verlauf auffrischen, sodass git Sie nicht unter Druck setzt "Machen Sie es gleich beim ersten Mal richtig."

3

Die Idee dahinter ist oft, einen Live-Feed für sich selbst zu erstellen. Ich denke, es ist auch eine Sicherheitsmaßnahme, falls Sie Ihren Code etwas ändern und etwas schief geht und Sie die Version verlieren, an der Sie gearbeitet haben. Auf diese Weise reduziert es die Notwendigkeit für menschliches Gedächtnis und stützt sich stattdessen auf (redundante) Computerspeicher.

+0

ok, also muss ich mich oft verpflichten, eine detailliertere Geschichte meiner Änderungen zu haben, die es mir erlauben würde, diese Änderungen rückgängig zu machen, falls etwas schief geht. Habe ich es richtig gesagt? Nehmen wir den folgenden Fall an: Ich ändere eine Datei in einem großen Projekt, was zu Fehlern in 10 anderen Dateien führt, die ebenfalls geändert werden müssen. Sollte ich mich nach dem Ändern jeder Datei verpflichten? Oder sollte ich es tun, nachdem alle Dateien geändert wurden (und frei von Fehlern)? – modellero

+0

@modellero, persönlich, in dem Beispiel, das Sie gaben, würde ich nach jeder Änderung, die Sie vorgenommen haben, verpflichten, auch wenn die Dateien immer noch Fehler enthalten. Dies ist das gleiche Prinzip wie das Debugging, bei dem Sie jede Zeile auskommentieren, bis Sie einen Fehler finden. In anderen möchten Sie so wenige "Lücken" wie möglich erstellen. Wenn Sie 100 Änderungen vornehmen und einmal committen, und dann 3 Tage später einen Fehler finden ... Nun, Mist, welche der 100 Änderungen hat den Fehler verursacht? Es ist einfacher, durch 100 einzelne Commits zu sortieren, um einen Punkt des Scheiterns einzugrenzen, als es durch ein riesiges Commit zu gehen und die Nadel im Heuhaufen zu finden. –

+0

@modellero, anstatt zu sagen "es ist immer gut, sich die ganze Zeit zu verpflichten", könnte es besser sein zu sagen, "es ist besser, zu viel als zu wenig zu begehen". –

Verwandte Themen