Was ist der kanonische Ansatz für die Verwendung eines VCS von Anfang an?


9

Hintergrund

Ich habe gitin der Vergangenheit (hauptsächlich ) VCS verwendet , um viele bestehende Projekte zu verwalten, und es funktioniert hervorragend. Normalerweise checke ich bei einem vorhandenen Projekt jede Änderung ein, die ich am Code vornehme, der die Gesamtfunktionalität entweder optimiert oder ändert (Sie wissen, was ich meine, in geeigneten Schritten nicht jede einzelne Zeile, die ich ändere).

Problem

Eine Sache, in der ich nicht so viel geübt habe, ist das Erstellen neuer Projekte. Ich bin in dem Prozess ein neues Projekt von meinem eigenen zu beginnen , der wahrscheinlich ziemlich groß wachsen, aber ich finde , dass es viel zu tun und viel in den ersten Tagen / Stunden / Wochen / die Zeit bis zu ändern bis das Produkt tatsächlich in seiner grundlegendsten Form funktioniert.

Gibt es einen Grund, warum ich jeden Schritt des Prozesses wie bei einem bestehenden Projekt überprüfe? Ich breche das Projekt nicht mit Änderungen, die ich vornehme, da es noch nicht funktioniert. Im Moment habe ich VCS einfach am Ende eines jeden Tages als Backup verwendet, wenn ich den Computer verlasse.

Meine ersten Commits waren Dinge wie "Grundlegende Verzeichnisstruktur vorhanden" und "DB-Tabellen erstellt". Wie soll ich ein VCS verwenden, wenn ich ein neues Projekt starte?


Ihr Titel kann in eine Frage UND deren Antwort umgewandelt werden: "Was ist der kanonische Ansatz für die Verwendung eines VCS? Schon in den Kinderschuhen eines Projekts" oder "Was ist der kanonische Ansatz für die Verwendung eines VCS-Rechts? Von den Kinderschuhen eines Projekts an"
AakashM

1
Der Titel wurde bearbeitet, seit ich die Frage gestartet habe. Ich kann zwar sehen, was Sie sagen, aber das ist weder die Frage noch die Antwort auf die Frage, die ich gestellt habe - oder zumindest nicht in dieser Interpretation.
Anonym

@ Anonymous-: Ich habe Ihren Titel umgeschrieben, weil er in Form einer Frage als nicht konstruktiv angesehen wurde. Ich hoffe, es macht Ihnen nichts aus, ich habe dies getan, um zu verhindern, dass es vorzeitig geschlossen wird. Entschuldigung, wenn dich das verwirrt hat.
Haylem

@ Haylem - Es ist kein Problem, ich stimme dir vollkommen zu! Ich weiß es zu schätzen, dass Sie versuchen, meine Frage offen zu halten - auf die wir jetzt eine endgültige Antwort haben. :)
Anonym

Ein (sehr!) Schnelles Tutorial auf Git -> try.github.com/levels/1/challenges/1
MathAttack

Antworten:


13

Einfach starten

git init

Früh einchecken, oft einchecken

Machen Sie einfach das, was Sie normalerweise mit einem Projekt machen: "Einchecken" für alle Änderungen, die sich auf eine bestimmte Aufgabe oder Aktionsgruppe beziehen. Wenn Sie einen Issue-Tracker verwenden, übernehmen Sie Änderungen, die sich auf eine Aufgabe beziehen, jedes Mal, wenn sie sich in einem stabilen Zustand befindet (siehe diese SO-Frage zur Häufigkeit des Festschreibens ). Es befindet sich möglicherweise nicht in einem vollständigen Zustand, sondern nur in einem stabilen Zustand, in dem die Software nicht ausgeführt oder die Site nicht gerendert werden kann. Wie Jeff Atwood in seinem Beitrag sagt:

Wenn der Code nicht in die Quellcodeverwaltung eingecheckt ist, ist er nicht vorhanden. [...]

Ich schlage nicht vor, dass Entwickler fehlerhaften Code einchecken - aber ich behaupte auch, dass es einen großen Unterschied zwischen fehlerhaftem und unvollständigem Code gibt.

Häufig festlegen, später perfektionieren, einmal veröffentlichen

Wenn das Produkt noch nicht einmal in der Nähe eines funktionsfähigen Zustands ist, überprüfen Sie die Änderungen nach Belieben und gruppieren Sie sie mit gutem Urteilsvermögen und gesundem Menschenverstand . Sie müssen nicht jede einzelne Zeilenänderung einzeln festschreiben, aber wenn Sie alles als großen Block festschreiben, wird es für Sie schwieriger, bei Bedarf ein Rollback durchzuführen.

Am Ende ist Ihr VCS hier, um Ihnen zu helfen . Helfen Sie also Ihrem VCS, Ihnen zu helfen!

Überdenken Sie es nicht

Ihre ersten Commits waren in Ordnung. Überdenken Sie es nicht. Das Wichtigste ist, dass sie eingecheckt sind. Wenn Sie sich alle vorhandenen Open-Source-Projekte online ansehen, die von Grund auf neu und nicht von einer vorhandenen Codebasis aus gestartet wurden, haben sie als erste Überarbeitung Folgendes:

hat die Verzeichnisstruktur erstellt (yay!)

Machen Sie es sich zur Gewohnheit

Versuchen Sie am Ende eines jeden Tages, anhand Ihrer Festschreibungsprotokolle ein Protokoll darüber zu erstellen, was Sie getan haben. Wenn die Ausgänge Sie bekommen git shortlogund git logschauen Sie nicht zufriedenstellend und nützlich , aber Sie haben in einem erheblichen Aufwand in das Projekt im Laufe des Tages gestellt und überprüft jene Änderungen, dann haben Sie wahrscheinlich nicht es richtig machen .

  • git shortlogsollte wie ein breiter Überblick darüber lesen, was Sie getan haben.
  • git logsollte wie die Geschichte und Geschichte Ihres Projekts lesen .

Dies sind gute Richtlinien, und ich möchte "Don't Overthink It" hervorheben (das gilt natürlich auch für die folgenden Richtlinien ... :) - da rauszukommen und es einfach zu tun , ist der beste Weg, um zu lernen, und die Leute bekommen es bald ein gutes Gefühl dafür, welcher Nutzungsstil für sie und ihr Projekt am besten geeignet ist.
Snogglethorpe

3

Was Sie tun, ist der richtige Ansatz.

Sie verwenden die Quellcodeverwaltung vom ersten Tag an - dies stellt sicher, dass Sie alles haben, was Sie für die Quellcodeverwaltung benötigen, und es gibt keinen Punkt, an dem Sie sagen können:

Ich sollte die Quellcodeverwaltung verwenden, aber es wird zu lange dauern, bis ich all diese Dinge zum ersten Mal einchecke.

Dies ist eine große Hürde für Leute, die zu spät zur Quellcodeverwaltung kommen, da sie dann denken, dass es "zu schwer" ist, sie zu verwenden. Indem Sie früh beginnen und häufig Änderungen vornehmen, haben Sie diese Hürde auf einen kleinen Schritt reduziert, und jeder andere, der sich Ihnen an dem Projekt anschließt, kann sofort mit der Arbeit beginnen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.