Warum sollte ich die Versionskontrolle verwenden? [geschlossen]

123

Ich habe einen Blog gelesen, in dem der Autor dies gesagt hat

"Code existiert nur, wenn er in ein Versionskontrollsystem eingecheckt ist. Verwenden Sie die Versionskontrolle für alles, was Sie tun. Jede Versionskontrolle, SVN, Git, sogar CVS, beherrschen und verwenden Sie sie."

Ich habe noch nie eine Versionskontrolle verwendet und finde sie nicht so toll. Ich habe es schon einmal gegoogelt und angeschaut, aber ich muss es nur in Kinderbegriffe umwandeln, wenn Sie so wollen.

Nach meinem derzeitigen Verständnis dienen Dinge wie SVN dazu, Ihren Code online zu speichern, damit eine Gruppe von Benutzern oder anderen Entwicklern auf denselben Code zugreifen kann. Sobald Sie einen Code aktualisiert haben, können Sie die neue Version einreichen, und der SVN speichert Kopien des alten sowie des neuen Codes, den Sie aktualisieren.

Ist das die Grundidee davon oder verstehe ich das völlig falsch?

Wenn ich recht habe, kann es nicht viel nützen, wenn ich:

  • Lassen Sie keine anderen Personen am Code arbeiten.
  • Planen Sie nicht, anderen den Code zu geben.
JasonDavis
quelle
4
Du meinst, du hast "Coding Horror" gelesen ...
Jason
53
Es ist ein seltsames Phänomen, dass viele Entwickler (normalerweise zu Beginn ihrer Karriere) diese Ansicht vertreten, und erst wenn Sie sie zur Verwendung der Quellcodeverwaltung zwingen, beginnen sich die Vorteile in ihren Köpfen zu entfalten.
Spender
4
Hände hoch, wer Martinhos Schande nicht teilt. :)
Spender
4
Jemand zeigt @TimEckel eine Halbierung, bei der die Versionskontrolle Sie auf magische Weise auf einen dreizeiligen Wechsel von vor drei Monaten hinweist und sagt: "Der Fehler wurde hier eingeführt." Geist = geblasen.
Jonathan Hartley
5
@ TimEckel, Sie verwenden immer noch eine Versionskontrolle, einen anderen Typ mit weniger Funktionen.
Abhinav Gauniyal

Antworten:

261

Hast du jemals:

  • Sie haben eine Änderung am Code vorgenommen, festgestellt, dass es sich um einen Fehler handelt, und wollten zurückkehren?
  • Code verloren oder hatte ein Backup, das zu alt war?
  • Mussten mehrere Versionen eines Produkts gepflegt werden?
  • Wollten Sie den Unterschied zwischen zwei (oder mehr) Versionen Ihres Codes sehen?
  • Wollten Sie beweisen, dass eine bestimmte Änderung einen Code gebrochen oder repariert hat?
  • Wollten Sie den Verlauf eines Codes überprüfen?
  • Wollten Sie eine Änderung am Code einer anderen Person einreichen?
  • Wollten Sie Ihren Code teilen oder andere Personen an Ihrem Code arbeiten lassen?
  • Wollten Sie sehen, wie viel Arbeit geleistet wird und wo, wann und von wem?
  • Wollten Sie mit einer neuen Funktion experimentieren, ohne den Arbeitscode zu beeinträchtigen?

In diesen und zweifellos in anderen Fällen sollte ein Versionskontrollsystem Ihnen das Leben erleichtern.

Um einen Freund falsch zu zitieren: Ein zivilisiertes Werkzeug für ein zivilisiertes Zeitalter.

si618
quelle
20
Dieser Typ hat es geschafft. Selbst wenn ich nur an Projekten arbeite, möchte ich lieber eine Versionskontrolle ausführen. Die voll funktionsfähige Demo von Perforce für 2 Benutzer ist dafür großartig.
Almo
3
klingt nützlich .. bis ich es lernen und beherrschen muss. heh
potasmic
7
Gute Argumente. Beachten Sie jedoch, dass die Versionskontrolle kein Backup ist! Ein Backup wird auf einem separaten System / Medium gespeichert und speichert alte Backups für eine Weile (nur für den Fall, dass Ihr Repository irgendwie durcheinander gerät).
Sleske
1
Konnte nicht mehr sleske zustimmen. Aus diesem Grund behalte ich zusammen mit unserer Standard-VM-Sicherung und der nächtlichen Repository-Überprüfung ein Spiegel-Repository, das stündlich synchronisiert und auch gesichert und überprüft wird :) Wir verwenden Subversion und haben festgestellt, dass svnedge ein gutes Produkt ist.
Si618
7
Hallo Tim, wie verfolgst du deine Änderungshistorie? Wie verknüpfen Sie Ihren Änderungsverlauf mit einem Issue-Tracker oder Versionshinweisen? Wie verwalten Sie das Zusammenführen verschiedener Zweige Ihres Codes? Wie finden Sie die Änderungen, die Sie in Ihren letzten 100 Versionen vorgenommen haben? Wenn Sie alleine codieren oder sich nie Gedanken darüber machen, warum Sie den Code geändert haben, reicht es vielleicht aus, nur ein Backup zu haben, aber ich wette, wenn Sie ein anständiges VCS verwendet haben, werden Sie verstehen, warum so viele Leute sie verwenden.
Si618
56

Selbst wenn Sie alleine arbeiten, können Sie von der Quellcodeverwaltung profitieren. Unter anderem aus folgenden Gründen:

  • Du verlierst nichts. Ich habe den Code nie wieder auskommentiert. Ich lösche es einfach. Es macht meinen Bildschirm nicht unübersichtlich und geht nicht verloren. Ich kann es wiederherstellen, indem ich ein altes Commit auschecke.

  • Sie können nach Belieben experimentieren. Wenn das Problem dadurch nicht behoben wird, setzen Sie es zurück.

  • Sie können sich frühere Versionen des Codes ansehen, um herauszufinden, wann und wo Fehler eingeführt wurden. git bisectist in dieser Hinsicht großartig.

  • Weitergehende Funktionen wie Verzweigen und Zusammenführen ermöglichen mehrere parallele Entwicklungslinien. Sie können ohne Störung in zwei Funktionen gleichzeitig arbeiten und ohne großen Aufwand hin und her wechseln.

  • Sie können sehen, "was sich geändert hat". Das mag einfach klingen, aber das ist etwas, das ich oft überprüfe. Ich beginne meinen Ein-Mann-Workflow sehr oft mit: Was habe ich gestern getan?

Probieren Sie es einfach aus. Beginnen Sie langsam mit den Grundfunktionen und lernen Sie andere kennen. Sie werden bald feststellen, dass Sie nie wieder in die "dunklen Zeiten" ohne VCS zurückkehren möchten.

Wenn Sie ein lokales VCS möchten, können Sie Ihren eigenen Subversion-Server einrichten (was ich in der Vergangenheit getan habe), aber heute würde ich die Verwendung empfehlen git. Viel einfacher. Einfach cdin Ihr Codeverzeichnis und ausführen:

git init

Willkommen im Klub.

R. Martinho Fernandes
quelle
das hört sich gut an, kann also lokal sein und muss nicht im Web sein, damit jemand es sehen kann? Ich benutze PHP Designer, ich liebe es und es hat Integration für Tortoise SVN, nicht sicher, ob das eine gute ist
JasonDavis
1
Verwenden Sie zunächst einfach alles - nach einer Weile, wenn Sie etwas wissen, lesen Sie Alternativen nach und probieren Sie eine davon aus, dann eine andere und so weiter
1800 INFORMATION
5
+1 für die Kugel auf nie
auskommentieren
2
@jasondavis Als Antwort auf Ihre spezifischen Fragen (obwohl Sie es wahrscheinlich inzwischen wissen) können Sie jedes verteilte VCS (Git, Mercurial usw.) lokal ohne Server verwenden. Sie könnten auch lokal ein zentrales VCS (CVS, SVN usw.) verwenden, aber die Einrichtung wäre viel ärgerlicher und würde keinen großen Nutzen bringen. Unabhängig davon, welches VCS Sie verwenden, können Sie es auf einem Server haben und es immer noch nicht öffentlich haben (nützlich für die Übertragung zwischen Computern und die Bereitstellung eines weiteren Backups) - suchen Sie nach "privatem Repository". Sie können TortoiseSVN nicht mit Git verwenden, aber es gibt einen Tortoise-Git da draußen.
naught101
18

Die Versionskontrolle ist ein seltenes Tool, das meiner Meinung nach unbedingt erforderlich ist, auch wenn Sie es nur als Einzelentwickler verwenden. Einige Leute sagen, dass es ein Werkzeug ist, mit dem man lebt und stirbt. Ich stimme dieser Behauptung zu.

Sie verwenden wahrscheinlich gerade die Versionskontrolle, auch wenn Sie es nicht wissen. Haben Sie Ordner mit der Aufschrift "XXX Php Code (Dezember)" oder "XXX.php.bak.2"? Dies sind bereits Formen der Versionskontrolle. Ein gutes Versionskontrollsystem erledigt dies automatisch für Sie. Sie können zu jedem Zeitpunkt (zu dem Sie Daten eingecheckt haben) zurücksetzen und eine genaue Kopie dieser Daten anzeigen.

Wenn Sie ein System wie Subversion verwenden und ein Remote-Repository verwenden (z. B. eines auf einem Server, den Sie besitzen), können Sie Ihren gesamten Code aufbewahren. Benötigen Sie eine Kopie Ihres Codes woanders? Kein Problem, probieren Sie es einfach aus. Festplattenabsturz zu Hause? Kein Problem (zumindest mit Ihrem Quellcode).

Selbst wenn Sie die Versionskontrolle jetzt nicht verwenden, werden Sie sie wahrscheinlich zu einem späteren Zeitpunkt in Ihrer Karriere verwenden, und Sie könnten davon profitieren, wenn Sie sich jetzt mit den Prinzipien vertraut machen.

Robert Venables
quelle
16
... oder "Kopie der Kopie der Kopie von MyWork"
Spender
1
@spender: Genau daran erinnere ich mich aus den dunklen Tagen, bevor ich mit der Versionskontrolle anfing :-)
Robert Venables
Es klingt sehr nützlich und mein aktuelles Projekt ist etwas groß, mindestens 150-200 Dateien. Wie funktioniert das? Ich höre "Version", was bedeutet, wie Version 1 und Version 2, wenn die Anzahl erhöht wird, was ist, wenn ich 1 ändere Datei und nicht der Rest, habe ich 200 Kopien von unverändertem Code oder nur Kopien von Dateien, die geändert wurden?
JasonDavis
1
Es wird nur das Delta Ihrer Änderungen gespeichert. Wenn Sie also eine Zeile in einer Datei ändern, ist dies alles, was in dieser Version gespeichert wird. Eine Datei in der Versionskontrolle kann als die Summe aller ihrer Änderungen betrachtet werden
Spender
1
Ich bin durch die Zeit gereist, um den Kommentar über mir zu korrigieren: Die Versionskontrolle speichert nicht unbedingt nur das Delta, sondern repräsentiert die Version als Delta.
Henrebotha
14

Ist das jemals passiert, selbst wenn man alleine arbeitet? Sie führen Ihre App aus und etwas funktioniert nicht und Sie sagen: "Das hat gestern funktioniert, und ich schwöre, ich habe diese Klasse / Methode nicht berührt." Wenn Sie regelmäßig Code einchecken, zeigt ein Diff der Schnellversion genau an, was sich am letzten Tag geändert hat.

Ed Schembor
quelle
Oder ich ziehe einfach die neueste Version aus meinen Backups, die jedes Mal erstellt werden, wenn ich eine Datei speichere.
Tim Eckel
@ TimEckel und einige andere Leute setzen einfach ihre Änderungen zurück :)
Abhinav Gauniyal
13

Hier ist ein Szenario, das die Nützlichkeit der Quellcodeverwaltung veranschaulichen kann, selbst wenn Sie alleine arbeiten.

Ihr Kunde bittet Sie, eine ehrgeizige Änderung an der Website vorzunehmen. Es dauert ein paar Wochen und erfordert Änderungen an vielen Seiten. Du machst dich an die Arbeit.

Sie sind zu 50% mit dieser Aufgabe fertig, wenn der Client anruft und Sie auffordert, Ihre Aktivitäten zu löschen, um eine dringende, aber geringfügigere Änderung an der Site vorzunehmen. Sie sind mit der größeren Aufgabe noch nicht fertig, können sie also nicht live schalten, und der Client kann nicht auf die kleinere Änderung warten. Er möchte aber auch, dass die geringfügige Änderung für die größere Änderung in Ihre Arbeit integriert wird.

Möglicherweise arbeiten Sie an der großen Aufgabe in einem separaten Ordner, der eine Kopie der Website enthält. Jetzt müssen Sie herausfinden, wie Sie die geringfügigen Änderungen auf eine Weise vornehmen können, die schnell bereitgestellt werden kann. Sie arbeiten wütend und erledigen es. Der Client ruft mit weiteren Verfeinerungsanforderungen zurück. Sie tun dies auch und stellen es bereit. Alles ist gut.

Jetzt müssen Sie es in die laufenden Arbeiten für die große Änderung einbinden. Was haben Sie für die dringende Arbeit geändert? Sie haben zu schnell gearbeitet, um Notizen zu machen. Und Sie können die beiden Verzeichnisse jetzt nicht einfach unterscheiden, da beide Änderungen in Bezug auf die Basislinie haben, von der aus Sie begonnen haben.

Das obige Szenario zeigt, dass die Quellcodeverwaltung ein großartiges Werkzeug sein kann, selbst wenn Sie alleine arbeiten.

  • Sie können Zweige verwenden, um an längerfristigen Aufgaben zu arbeiten, und den Zweig dann wieder in der Hauptzeile zusammenführen, wenn er fertig ist.
  • Sie können ganze Dateisätze mit anderen Zweigen oder früheren Revisionen vergleichen, um festzustellen, was anders ist.
  • Sie können die Arbeit im Laufe der Zeit verfolgen (was sich übrigens hervorragend für die Berichterstellung und Rechnungsstellung eignet).
  • Sie können jede Revision einer Datei basierend auf dem Datum oder einem von Ihnen definierten Meilenstein wiederherstellen.

Für Soloarbeiten wird Subversion oder Git empfohlen. Jeder kann das eine oder andere bevorzugen, aber beides ist eindeutig besser, als keine Versionskontrolle zu verwenden. Gute Bücher sind " Pragmatic Version Control using Subversion, 2nd Edition " von Mike Mason oder " Pragmatic Version Control Using Git " von Travis Swicegood.


Ursprünglicher Autor: Bill Karwin

Robert Harvey
quelle
10

Auch als Einzelentwickler bietet die Quellcodeverwaltung einen großen Vorteil. Sie können den Verlauf Ihres Codes speichern und jederzeit zu früheren Versionen Ihrer Software zurückkehren. Dies ermöglicht Ihnen furchtlose Flexibilität beim Experimentieren, da Sie jederzeit eine andere Version Ihres Quellcodes wiederherstellen können, die funktioniert hat.

Es ist, als hätte man einen riesigen "Rückgängig" -Button bis zur ersten Codezeile.

gbc
quelle
7

Es ist fast unmöglich, auf die Versionskontrolle zu verzichten, nachdem Sie sie verwendet haben. Es ist unabdingbar, wenn mehr als ein Entwickler an derselben Codebasis arbeitet ... aber es ist auch für einen einzelnen Entwickler sehr nützlich.

Es verfolgt die Änderungen in Ihrem Code und ermöglicht Ihnen das Zurücksetzen auf frühere Versionen. Sie können mit dem Wissen experimentieren, dass Sie Ihre Änderungen rückgängig machen können, wenn etwas kaputt geht.

Vincent Ramdhanie
quelle
Ich finde die Versionskontrolle langsam, ineffizient und behindere die Entwicklung. Es ist viel einfacher, eine automatische Cloud-Sicherung aller Dateien einzurichten, bei der die letzten 100 Updates automatisch gespeichert werden. Nichts, was man jemals bekommen oder drücken oder synchronisieren könnte. Einfach codieren.
Tim Eckel
5

Sie erhalten Sicherheit (im Sinne einer Sicherung Ihres Codes) und Versionierung Ihres Codes (vorausgesetzt, Sie gewöhnen sich an, Ihre Änderungen häufig vorzunehmen). Beides sind sehr gute Dinge, auch wenn sonst niemand mit Ihnen an dem Code arbeitet ...


quelle
3

Die Versionskontrolle eignet sich hervorragend zum Überprüfen früherer Versionen, auch wenn Sie alleine arbeiten. Wenn Sie beispielsweise versehentlich Code oder eine Datei löschen, können Sie sie zurückerhalten. Sie können auch frühere Versionen vergleichen, um festzustellen, warum sich ein neuer Fehler eingeschlichen hat. Es ist auch gut, wenn Sie eine Person sind, die an mehreren Standorten arbeitet.

Mein persönlicher Favorit ist Git.

Peter
quelle
3

Es gibt eine Reihe von Gründen für die Versionskontrolle, auch wenn Sie die einzige Person sind, die den Code jemals berührt.

  • Backup - was ist, wenn Ihre Festplatte abstürzt? Hast du irgendwo eine Kopie?
  • Versionsgeschichte - Bewahren Sie derzeit Codekopien in verschiedenen Ordnern auf? Mit der Versionskontrolle können Sie Ihre Änderungen im Laufe der Zeit verfolgen und verschiedene Revisionen mithilfe von Tools problemlos unterscheiden, zusammenführen, Änderungen rückgängig machen usw.
  • Zweige - die Möglichkeit, einige Änderungen zu testen, dennoch zu verfolgen, was Sie tun, und dann zu entscheiden, ob Sie es behalten und in das Hauptprojekt einbinden oder es einfach wegwerfen möchten.

Wenn Sie Ihren Code unter Versionskontrolle halten, können Sie leicht erkennen, welche Dateien Sie geändert haben (oder vergessen haben, sie zur Baseline hinzuzufügen).

Mads Hansen
quelle
3

Etwas, das sonst niemand ausdrücklich erwähnt zu haben scheint, ist das Markieren oder Etikettieren von Veröffentlichungen. Wenn Sie einen Client haben, der Version 1 Ihrer Software verwendet, und gerade an Version 2 arbeiten, was tun Sie, wenn der Client einen Fehler meldet und Sie Version 1.1 erstellen müssen?

Mit einem Versionsverwaltungssystem können Sie jede von Ihnen erstellte Version kennzeichnen, damit Sie später darauf zurückgreifen, die Korrektur vornehmen (und diese Korrektur in den neuen Code der Version 2 zusammenführen) und eine neue Version erstellen können, ohne befürchten zu müssen, dass Sie versehentlich etwas liefern, das dies bewirkt ist noch nicht fertig

Die Quellcodeverwaltung ist ein zentraler Bestandteil der modernen Softwareentwicklung. Wenn Sie es nicht verwenden (auch für persönliche Projekte, denn je mehr Erfahrung Sie haben, desto besser), machen Sie etwas falsch.

Normalerweise ist eine der ersten Fragen, die ich stelle, wenn ich für einen Job interviewt werde, "Was verwenden Sie für die Quellcodeverwaltung?". Bisher hat nur ein Ort "Nichts" gesagt, aber sie planten, das "Wirklich bald ..." zu beheben.


quelle
2

Die Tatsache, dass andere Entwickler teilnehmen oder nicht, ist völlig orthogonal zur Notwendigkeit eines Versionskontrollsystems.

Sie können der einzige Entwickler sein, profitieren aber dennoch von:

  • Ein Verlaufspfad all Ihrer Änderungen
  • Fähigkeit, in dieser Geschichte vor und zurück zu gehen
  • Fähigkeit, mit der Quelle zu experimentieren und noch eine funktionierende Version zu haben (Verzweigung)
  • eine Sicherungskopie (insbesondere, wenn Sie einen anderen Computer als Versionsverwaltungsserver verwenden, und noch mehr, wenn dieser Computer regelmäßig gesichert wird)

Wenn Sie eine Gruppe haben, die sich auf derselben Codebasis entwickelt, ist die Versionskontrolle noch notwendiger

  • Leute können dieselbe Datei zur gleichen Zeit bearbeiten (abhängig vom jeweiligen System, aber die meisten vernünftigen erlauben es Ihnen, dies zu tun)
  • Sie können erkennen, wer wann was mit dem Code gemacht hat

Wenn mehr Personen beteiligt sind, ist es je nach Entwicklungsstil relevanter, welches Tool zur Versionskontrolle Sie auswählen.

Vinko Vrsalovic
quelle
1

Es geht auch darum, alte Dateien zu sichern, weshalb sie "Subversion" genannt werden. So können Sie mehrere Versionen Ihrer Arbeit verwalten, in denen Sie zurückkehren (zurücksetzen) und die unterschiedliche Implementierung verwalten können (Verzweigung).

NawaMan
quelle
1

Möglicherweise haben Sie eine funktionierende Version Ihres Programms.

Sie beschließen, im Laufe der Zeit einige neue Funktionen hinzuzufügen, und geben diese frei.

Sie erhalten Fehlerberichte, die sich auf Code auswirken, von dem Sie dachten, Sie hätten ihn nicht berührt.

Wenn Sie beispielsweise SVN verwenden, können Sie zu einer älteren Version zurückkehren und prüfen, ob der neue Fehler vorliegt. Sobald Sie eine Version gefunden haben, die den Fehler eingeführt hat, ist es einfacher, ihn zu beheben, da Sie die funktionierende Version mit der nicht funktionierenden Version vergleichen und feststellen können, was sich geändert hat. Dadurch wird die Suche eingegrenzt.

Die Quellcodeverwaltung hat viele Verwendungsmöglichkeiten, auch wenn Sie der einzige Entwickler sind.

James Black
quelle
1

Klingt so, als ob Sie etwas Leichteres suchen. Schauen Sie sich Mercurial (ein fantastisches Nachschlagewerk ) an. Ich benutze es für alles, vom Quellcode bis zur persönlichen Korrespondenz.

Einige Vorteile:

  • Giant Undo-Schaltfläche, damit Sie die halcyon-Tage der letzten Woche zurückgeben können, an denen der Code tatsächlich ausgeführt wurde
  • Wegwerfcode. Sie sind sich nicht sicher, ob dies der beste Weg ist, etwas zu tun? Machen Sie einen Zweig und experimentieren Sie. Niemand außer Ihnen muss es jemals wissen, wenn Sie ein DVCS wie Mercurial verwenden.
  • Synchronisierte Entwicklung. Ich entwickle auf 4 verschiedenen Computern. Ich drücke und ziehe zwischen ihnen, um den aktuellen Stand zu halten. Egal bei welchem ​​ich mich befinde, ich habe die neuesten Versionen.
Jonathanb
quelle
1

Selbst wenn Sie noch nicht in einer Situation waren, in der Sie eine ältere Version Ihres Programms benötigten, gibt Ihnen eine Quellcodeverwaltung mehr Vertrauen, um größere Änderungen vorzunehmen.

Nachdem ich die Quellcodeverwaltung verwendet hatte, führte ich ein aggressiveres Refactoring durch, da ich immer wusste, dass eine funktionierende Version leicht wiederhergestellt werden kann.

Otto Allmendinger
quelle
1

Ich habe auch erst vor kurzem begonnen, mich für die Versionskontrolle zu interessieren. In Versionskontrollsystemen haben Sie das Konzept eines Repositorys für Ihren Code. Eine Fülle neuer Shell-Befehle wird sehr schnell erlernt, sodass Sie mit diesem Repository interagieren können.

Sobald Sie Ihren Code in einer Datei speichern, können Sie dann begehen dieses Repository zu einem Projekt. Während Sie Ihren Code entwickeln und Ihre Änderungen festschreiben, entwickelt das Repository eine Reihe von Revisionen . Sie können auf alle diese zugreifen, indem Sie auschecken eine Revision auschecken. Wenn Sie alleine arbeiten, ist es unwahrscheinlich, dass Sie viel auschecken, es sei denn, Sie verlieren Ihre Codedateien oder möchten auf einem anderen Computer arbeiten. In diesen Fällen überprüfen Sie normalerweise die neueste Version aller Dateien.

Ich für meinen Teil behalte keine Dateien oder Ordner mit dem Namen 'project_old' mehr, wenn ich mich entscheide, etwas umzugestalten. Alle Änderungen, die ich vornehme, werden inkrementell gespeichert und ich kann immer zu einem Projekt zurückgehen, das als Ganzes funktioniert hat. Ich verwende jetzt selten FTP für die Bereitstellung, da ich meinen Code nur über ssh auschecke. Es werden nur die Dateien heruntergeladen, die ich geändert habe. Wenn ich auf dem Server neu laden muss, ist das Terminal bereits vorhanden.

Ich fand diesen Vortrag über GIT sehr lehrreich; http://www.youtube.com/watch?v=4XpnKHJAok8

Es ist ein Google-Talk, in dem Linus Torvalds ein Argument für die Verwendung eines Versionskontrollsystems gegenüber einem anderen vorbringt. Dabei erklärt er anhand von Konzepten, wie sie funktionieren, und vergleicht dann verschiedene Arten ihrer Umsetzung.

deau
quelle
Aber was ist, wenn Sie etwas zwischen Commits brechen? Dann bist du verloren. Bei Verwendung der automatisierten Versionierung tritt dieses Problem nie auf, wenn Sie nutzlose Versionierungsdienste wie GitHub und ähnliche verwenden.
Tim Eckel
1
@ TimEckel Was meinst du mit "etwas s / w-Commits brechen"? Wenn ich nach meinem letzten Festschreiben etwas schreibe und neue Änderungen mit nicht funktionierendem Code festschreibe, setze ich meine Änderungen einfach auf das letzte Festschreiben zurück. So einfach ist das.
Abhinav Gauniyal
@TimEckel zu sagen, dass GitHub nutzlos ist, ist wie zu sagen, dass Linux nutzlos ist - Millionen würden Ihnen nicht zustimmen, aber Sie sagen es trotzdem, weil Sie offensichtlich schlauer sind als diese Millionen, oder?
Charleh
1
@Charleh nur weil Millionen es benutzen, heißt das nicht, dass es gut ist. Millionen verwenden immer noch AOL und haben Britney Spears-Alben. Ich benutze GitHub jeden Tag und hasse es jedes Mal, wenn ich es benutze. Ich sehe keine Notwendigkeit dafür, es stört und verlangsamt die Dinge.
Tim Eckel
0

Sie werden wahrscheinlich so etwas wie Subversion wollen, selbst wenn Sie alleine arbeiten, damit Sie einen Verlauf aller Ihrer Änderungen haben. Vielleicht möchten Sie sehen, wie ein Code einmal aussah, um sich daran zu erinnern, warum Sie eine Änderung vorgenommen haben.

Eine Quellcodeverwaltung ist auch nützlich, wenn Sie häufig einchecken. Wenn Sie häufig einchecken, können Sie auch häufig einen Rollback durchführen. Oft konnte man einen Weg gehen, um ein Problem zu lösen, und dann erkennen, dass es der falsche Weg war. Oft konnte man einfach weiter auf dem falschen Weg bellen und am Ende eine schreckliche Lösung finden - nur weil man nicht all seine Arbeit verlieren wollte. Wenn Sie häufig einchecken, ist der letzte Punkt des "Glücks" nicht weit entfernt. Selbst wenn Sie den falschen Weg einschlagen, können Sie jederzeit einen Rollback durchführen und es erneut versuchen, um eine elegantere und einfachere Lösung zu finden. Das ist immer gut, damit Sie verstehen und pflegen können, was Sie in Zukunft geschrieben haben.

digiarnie
quelle
0

Dies hängt von der Größe des Projekts ab und davon, wie oft Sie Ihre Meinung zu Teilen des Projekts ändern. Bei kleinen Projekten, bei denen Sie nur etwas linear erledigen, ist die Versionskontrolle wahrscheinlich keine große Hilfe (wenn Sie jedoch versehentlich eine Datei ohne Versionskontrolle löschen oder beschädigen, werden Sie weinen).

Aber vor ein paar Wochen traf ich einen Freund, der selbst ein riesiges Hobbyprojekt schrieb. Er hatte zehn oder zwanzig Kopien seines Codes mit Suffixen wie "X1", "X2", "Test", "schneller" und so weiter.

Wenn Sie mehr als zwei Kopien Ihres Codes erstellt haben, benötigen Sie eine Versionskontrolle . Mit einem guten Versionskontrollsystem können Sie eine vor einiger Zeit vorgenommene Änderung rückgängig machen, ohne die nach dieser Änderung vorgenommenen Änderungen rückgängig zu machen. Hier können Sie sehen, wann bestimmte Änderungen vorgenommen wurden. Sie können Ihren Code in zwei "Pfade" aufteilen (z. B. einen zum Testen einer neuen Idee, den anderen, um Ihren "bewährten" Code bis zum Abschluss des Tests zu schützen) und diese dann wieder zusammenführen.

Artelius
quelle
-2

Es ist 2019. Ich stoße zu diesem relativ späten Zeitpunkt auf Einwände gegen die Verwendung von Git. Einwände sehe ich hier einige Erhöhungen. Diese Diskussion hat die Notwendigkeit der Verwendung der Quellcodeverwaltung deutlich gemacht, anstatt nur benannte Sicherungskopien zu erstellen. Ein wichtiger Punkt ist die Verwendung der Quellcodeverwaltung, selbst wenn wir einzelne Entwicklerprojekte haben. Niemand ist perfekt. Du machst Fehler. Wenn Sie außergewöhnlich gut und intelligent sind, werden Sie komplexere Apps entwickeln. Aber du wirst immer noch einige Fehler machen und das erledigt es. Meine Güte, oh Pete! Ich benutze nie Linux, aber ich denke, wir alle respektieren die große technische Intelligenz von Linus Torvalds. Er erkannte die Bedeutung der Quellcodeverwaltung und leistete wichtige Beiträge zur Gründung von Git. Das ist eine Zusammenfassung aus allen hier genannten Gründen. Torvalds versteht es: Quellcodeverwaltung ist sehr wichtig: Verwenden Sie die Quellcodeverwaltung. Vielen Dank an alle, die dieses langjährige Thema kommentiert haben.

JPDura
quelle