⊗gtPmStPr 1 of 66 menu

Das Problem der Sicherungskopien

Stellen Sie sich vor, Sie haben ein umfangreiches Projekt. Sie schreiben daran und erreichen irgendwann einen gewissen logischen Abschluss und veröffentlichen Version 1.0, die von den Nutzern in Gebrauch genommen wird.

Die Arbeit hört jedoch nicht auf, und Sie veröffentlichen Version 1.1 mit Fehlerbehebungen und Ergänzungen, dann Version 1.2, dann 1.3, und dann schreiben Sie alles von Neuem und kündigen das Erscheinen von Version 2.0 an. Und so weiter - die Arbeit am Projekt endet normalerweise nie.

Während der Entwicklung besteht jedoch das Risiko, etwas im Code zu beschädigen oder versehentlich das Projekt oder einen Teil davon zu löschen. Um nicht die gesamte Arbeit zu verlieren, speichern Sie periodisch den Code des Projekts in einem separaten Ordner. Ihre Sicherungen nummerieren Sie einfach der Reihe nach und fügen einen Kommentar zur Sicherung hinzu, der festhält, welche Änderungen Sie vorgenommen haben oder welche Funktionalität Sie bis zu diesem Zeitpunkt der Sicherung bereits implementiert hatten.

Es stellt sich jedoch plötzlich heraus, dass man nicht einfach Version 2.0 veröffentlichen kann, weil die Nutzer der ersten Version protestieren - sie sind noch nicht bereit, auf die zweite umzusteigen. Okay, sagen Sie, und beginnen an der zweiten Version zu arbeiten, während Sie parallel Updates für die erste veröffentlichen. Ihr Projekt spaltet sich in zwei Ordner auf - einen für die erste Version und einen für die zweite. Ebenso spaltet sich der Ordner für die Sicherungskopien. Dabei ist ein Teil des Codes der ersten und zweiten Version identisch. Wenn Sie Änderungen an diesem Code in einer Version des Projekts vornehmen, müssen Sie nicht vergessen, die Änderungen auch in der anderen Version vorzunehmen. Sie vergessen das jedoch manchmal. Es treten seltsame Bugs auf. Die Arbeit stockt.

Während der Arbeit an Version 2.0 haben Sie beschlossen, eine neue Funktion hinzuzufügen. Diese umzusetzen dauert jedoch lange und Sie beschließen, die zweite Version in zwei Ordner aufzuteilen und den Code zu duplizieren. Im ersten Ordner führen Sie die weitere Entwicklung Ihres Projekts fort, und im zweiten implementieren Sie die geplante Funktion. Schließlich ist die Funktion fertig. In dieser Zeit ist das Hauptprojekt bereits bei Version 2.3 angelangt. Nun müssen Sie den Code mit der Funktion mit dem Hauptcode des Projekts zusammenführen. Sie beginnen, Dateien in den Hauptordner zu kopieren und gleichzeitig Konflikte zwischen neuem und altem Code zu lösen. Das kostet Sie drei Arbeitstage. Die Arbeit stockt.

Das Projekt ist gewachsen. Sie beschließen, einen Freund um Hilfe zu bitten. Sie weisen Ihren Freund an und senden ihm ein Archiv mit dem Projekt. Der Freund erledigt die Aufgabe und schickt Ihnen ein Archiv mit neuen Dateien zurück, sowie mit alten, in die er Änderungen vorgenommen hat. Einen halben Tag verbringen Sie damit, die neuen Dateien von den alten zu trennen. Dann verbringen Sie noch einen Tag damit, die Änderungen in Ihre eigenen Dateien zu integrieren.

Sie holen noch zwei Freunde zur Hilfe. Nun sind Sie zu viert. Täglich erhalten Sie Archive mit der geleisteten Arbeit. Sie integrieren die neuen Teile ins Projekt und versenden an alle die Projektarchive mit den Änderungen. Die Arbeit schreitet langsam voran, denn während Sie eine Änderung integrieren, warten Ihre Freunde, bis Sie ihnen die neue Version des Projekts zuschicken und können nicht weiterarbeiten, um nicht völlig aus dem Sync zu geraten.

Im Ordner mit den Sicherungskopien befinden sich bereits Gigabytes an Code. Dabei liegen dort hauptsächlich Duplikate, denn wenn Sie einen kleinen Teil des Codes ändern, sichern Sie trotzdem das gesamte Projekt. Sie beschließen, diesen Ordner aufzuräumen, indem Sie die ersten hundert Versionen löschen. Eine Woche später stellt sich heraus, dass in den gelöschten Versionen der Code für eine bestimmte Funktion war, von der Sie damals Abstand genommen haben, die Sie jetzt aber wieder einfügen möchten. Aber der Code mit dieser Funktion ist bereits gelöscht und existiert nirgends mehr. Sie schreiben diese Funktion erneut. Die Arbeit stockt.

Klingt nicht so gut, oder? Entwickler haben tatsächlich früher so gearbeitet, wie ich es oben beschrieben habe. Das war natürlich sehr unpraktisch. Daher entstand ein spezielles System namens Git, über dessen Möglichkeiten wir in der nächsten Lektion sprechen werden.

Deutsch
БеларускаяEnglishEspañolFrançaisPortuguêsРусский
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen