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.
quelle
Antworten:
Hast du jemals:
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.
quelle
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 bisect
ist 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. Einfachcd
in Ihr Codeverzeichnis und ausführen:Willkommen im Klub.
quelle
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.
quelle
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.
quelle
Hier ist ein Szenario, das die Nützlichkeit der Quellcodeverwaltung veranschaulichen kann, selbst wenn Sie alleine arbeiten.
Das obige Szenario zeigt, dass die Quellcodeverwaltung ein großartiges Werkzeug sein kann, selbst wenn Sie alleine arbeiten.
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
quelle
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.
quelle
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.
quelle
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
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.
quelle
Es gibt eine Reihe von Gründen für die Versionskontrolle, auch wenn Sie die einzige Person sind, die den Code jemals berührt.
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).
quelle
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
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:
Wenn Sie eine Gruppe haben, die sich auf derselben Codebasis entwickelt, ist die Versionskontrolle noch notwendiger
Wenn mehr Personen beteiligt sind, ist es je nach Entwicklungsstil relevanter, welches Tool zur Versionskontrolle Sie auswählen.
quelle
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).
quelle
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.
quelle
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:
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle