Was ist Versionskontrolle?

Versionskontrolle, auch bekannt als Quellcodeverwaltung, nutzt Tools für die Verfolgung von Änderungen oder Bearbeitungen, die im Laufe der Zeit am Quellcode vorgenommen wurden. Die Versionskontrolle ermöglicht eine schnelle und effiziente Zusammenarbeit zwischen Entwicklern bei gleichzeitiger Wahrung der Integrität des Codes, so dass Software-Entwicklungsteams ohne Angst vor Code-Konflikten arbeiten können.

Versionskontrolle erklärt

Versionskontrollsysteme (VCS) ermöglichen es Teams den Quellcode ihrer Projekte zu sichern und zu archivieren. Das macht es einfacher, Bearbeitungen am Repository zu überprüfen oder durchzuführen oder im Fall eines Fehlers, der den Build zerstört, frühere Versionen wiederherzustellen.

Versionskontrolle ist der systematische Prozess für das Verfolgen und Verwalten von Aktualisierungen des Quellcodes und der Assets. Versionskontrollsysteme sind für effiziente Arbeitsabläufe von grundlegender Bedeutung, da sie für Programmierer, Grafiker und andere Teammitglieder als einzige verlässliche Informationsquelle fungieren und gleichzeitig jedem die Möglichkeit geben, unabhängig zu einer gemeinsamen Codebasis beizutragen. Sie dienen auch als Sicherheitsnetz, das es ermöglicht, Codeaktualisierungen rückgängig zu machen, falls während der Entwicklung ein katastrophaler Fehler auftreten sollte.

Faktoren wie die Größe eines Teams und die geografische Verteilung können beeinflussen, welche Versionskontrollsysteme ein Spieleentwickler einsetzen möchte. Einzelne Entwickler stellen möglicherweise fest, dass eine lokale Lösung ausreicht, um auf dem Laufenden zu bleiben, während größere Teams ein robustes und skalierbares Versionskontrollsystem verwenden sollten, das ihnen die Zusammenarbeit über Zeitzonen und geografische Grenzen hinweg erleichtert.

Die Versionskontrolle unterstützt auch die Fähigkeit, Verzweigungen zu erstellen. Eine Verzweigung ist eine einzelne Kopie von Code, die innerhalb eines VCS verwaltet wird. Durch das Erstellen von Verzweigungen können Entwickler und andere Teammitglieder unabhängig voneinander in separaten Streams arbeiten. Die Versionskontrolle hilft Entwicklern, kollaborativ und synchron in einer gemeinsamen Codebasis zu arbeiten.

Warum ist Versionskontrolle wichtig?

Versionskontrollsysteme sind eine zentrale Säule von DevOps, die es Teams ermöglichen, zusammenzuarbeiten und den Quellcode eines Projekts schnell zu iterieren.

Wer mit Versionskontrolle arbeitet, hat immer ein Backup. Einzelne Projektaktualisierungen werden in regelmäßigen Abständen zu einer einzelnen Gruppe, einem so genannten «Commit», zusammengefasst, bevor sie in den Hauptquellcode eingefügt werden. Eine Versionskontroll-Software ist unerlässlich, um alle Modifikationen an jeder Projektdatei nachzuverfolgen. Falls ein Fehler oder eine Softwareregression vorkommt, können die Anwender nahezu sofort zu einer früheren Version dieser Datei zurückkehren. Die Versionskontrolle bietet auch ein Verzeichnis, das alle Änderungen, wer die Änderungen vorgenommen hat und jede Iteration der jeweiligen Änderung enthält. Mit einem Versionskontrollsystem können alle Beteiligten und Teammitglieder nahtlos an vielen Dateien simultan arbeiten. Versionskontrollsysteme ermöglichen es Ihnen, alle Codebearbeitungen und -änderungen in einem zentralen Repository zusammenzufügen.

Durch den Zugriff auf einen vollständigen Projektverlauf und die Möglichkeit, Fehler rückgängig zu machen, vereinfachen Versionskontrollsysteme die Fehlerfindung und erleichtern die Wiederherstellung zuvor entfernter Funktionen.

Zentralisierte Versionskontrollsysteme

Wie funktioniert die Versionskontrolle?

Das Erstellen eines neuen Repositorys in Ihrem Versionskontrollsystem öffnet den Hauptzweig: Dieser wird Hauptzweig oder Master-Stamm genannt. Der Master-Stamm ist, wo die Haupt-Codebasis in die Pipeline kommt, wo sie dann kompiliert und dem Endnutzer bereitgestellt wird.

Also was sind Verzweigungen? Verzweigung ist der Prozess, bei dem Code aus dem Master-Stamm herausgenommen wird. Dies erlaubt den Entwicklern, ihre eigenen Änderungen am Code vorzunehmen, ohne sie dem Haupt-Code hinzuzufügen. Verzweigungen zu nutzen, bedeutet, dass Entwickler nicht über den kompletten Dateiverlauf auf einem einzelnen Server verfügen müssen, stattdessen können sie einen vollständigen Projektverlauf der im Laufe der Zeit vorgenommenen Änderungen an ihrem Code pflegen. Das Versionskontrollsystem kann dann diese separaten Verzweigungen nehmen und sie im Hauptzweig wieder zusammenführen. Falls ein Entwickler nicht bereit ist, seine Aufgabenzweige im Haupt-Code zusammenzuführen, kann er seine Änderungen in eine separate Verzweigung überführen und sie zu einem Wunschzeitpunkt im Haupt-Code zusammenführen.

Eine angemessene Verzweigungsstrategie ist unerlässlich, um Code-Konflikte und defekte Builds zu vermeiden. Glücklicherweise ermöglichen gute Versionskontrollsysteme den Teams eine einfache Synchronisation mit dem Hauptzweig und die leichte Reparatur aller potentieller Code-Konflikte – sogar nachdem der Code dem Hauptintegrationszweig hinzugefügt wurde.

Dezentralisierte Versionskontrollsysteme erklärt

Mit dezentralisierten Versionskontrollsystemen können Sie einchecken, verzweigen und zusammenführen, ohne sich mit dem Hauptserver zu verbinden. Jeder Mitwirkende arbeitet mit einem geklonten Repository, das in der Cloud gespeichert ist. Ihr Hauptvorteil besteht darin, dass die Teammitglieder unabhängig voneinander und mit hoher Geschwindigkeit arbeiten können, ohne sich um langsame Netzwerke oder VPNs kümmern zu müssen. Es ist sogar möglich, offline an einem Projekt zu arbeiten, aber zum Pushen oder Pullen von Updates ist immer noch eine Internetverbindung erforderlich

Bei dezentralisierten Versionskontrollsystemen kann es zu langen Wartezeiten kommen, wenn Sie Ihren gesamten Projektverlauf herunterladen müssen, insbesondere bei großen Projekten mit umfangreichen Änderungsverläufen. Studios, die mit großen Binärdateien arbeiten, sollten die Speichernutzung sorgfältig überwachen, da diese Dateien schnell viel Platz beanspruchen können.

Studios, die Flexibilität und potenzielle Produktivitätssteigerungen anstreben, sollten eine dezentralisierte Versionskontrolle in Betracht ziehen.

Dezentralisierte Versionskontrollsysteme

Zentralisierte Versionskontrollsysteme erklärt

Zentralisierte Versionskontrollsysteme verwenden einen Check-in/Push-Workflow zur Verbindung mit dem Hauptserver. Jede Änderung oder Aktualisierung des Quellcodes wird automatisch als neue Version im Repository gespeichert. Zentralisierte Versionskontrollsysteme verfügen über leistungsstarke Funktionen zum Verzweigen und Zusammenführen, ohne dass das Repository auf mehrere Rechner geklont werden muss. In diesem Sinne ist es potenziell sicherer. Zentralisierte Versionskontrollsysteme erfordern eine Netzwerkverbindung. Da die Teams an eine einzige Version des Projekts gebunden sind, die auf einem Server gespeichert ist, können Serviceunterbrechungen zu erheblichen Verzögerungen führen. Ein weiterer Nachteil der zentralisierten Versionskontrolle ist, dass sie schlecht skalierbar ist. Je mehr Entwickler an Ihrem Projekt mitarbeiten, desto weniger Möglichkeiten gibt es, Änderungen in einer stabilen Umgebung voranzutreiben, was zu Problemen wie Merge-Konflikten führen kann. Wenn Sie an Versionskontrollsystemen interessiert sind, die einfach einzurichten und zu verwenden sind, können Sie einen zentralisierten Arbeitsablauf in Betracht ziehen.

Lokale Versionskontrollsysteme erklärt

Lokale Versionskontrollsysteme sind die einfachste Form der Versionskontrolle und werden hauptsächlich von einzelnen Entwicklern und nicht von Teams verwendet. Bei der lokalen Versionskontrolle werden alle Projektdaten auf einem einzigen Computer gespeichert, und Änderungen an Projektdateien werden als Patches gespeichert. Jeder Patch enthält nur die Aktualisierungen, die seit dem vorherigen Patch vorgenommen wurden. Wenn ein Problem mit einer bestimmten Version Ihres Projekts auftritt, müssen Sie die gesamte Sammlung von Patches untersuchen, um herauszufinden, wie die Projektdateien zu einem bestimmten Zeitpunkt aussahen, um das Problem zu diagnostizieren. Da sie an einen Computer gebunden sind, sind lokale Versionskontrollsysteme von Natur aus weniger flexibel als ihre dezentralisierten und zentralisierten Gegenstücke. Die Zusammenarbeit zwischen Teammitgliedern ist schwierig, und wenn die Datenbank beschädigt ist, kann es schwierig, wenn nicht gar unmöglich sein, die verlorenen Informationen wiederherzustellen. Im Allgemeinen ist es in Ordnung, mit lokaler Versionskontrolle zu beginnen, aber sobald Sie anfangen zu skalieren (schon von einem 1-Person-Team zu einem 2-Personen-Team), ist die Arbeit mit einer dezentralisierten oder zentralen Versionskontrolle besser.

Vorteile der Versionskontrolle

Änderungsnachverfolgung

Verfolgen Sie Änderungen leicht nach und führen Sie Projektübergreifend zusammen

Dateivergleich

Ermöglicht den Vergleich von Dateien und identifiziert die Unterschiede zwischen Dateien

Problembehebung

Einfache Problembehebung aufgrund des vollständigen Änderungsarchivs, das innerhalb des VCS gespeichert ist.

Zentrales Repository

Das zentrale Repository ermöglicht die nahtlose Zusammenarbeit, ohne Auswirkungen auf die individuelle Leistung oder Code-Änderungen zu haben

Teilen von Dateien

Sparen Sie Speicherplatz und Zeit, indem Sie Dateien nahtlos mit Entwicklern und Beteiligten teilen, ohne dass Sie ständig Kopien von Code-Anpassungen speichern müssen

Dezentrale Entwicklung

Dezentrale Entwicklung ermöglicht es Entwicklern, von überall aus zu arbeiten, wo sie möchten

Verwandte Themen

Erkunden Sie weitere Ressourcen, um mehr über Versionskontrollsysteme sowie andere DevOps-Tools und -Prozesse zu erfahren.

Agile vs. DevOps

Agile und DevOps verfolgen dieselben Ziele – Wertschöpfung für die Kunden mittels regelmäßiger Veröffentlichungen – sie unterscheiden sich aber etwas in der Herangehensweise. Erfahren Sie, wie beide Lösungen zusammen eingesetzt werden können.

DevOps-Grundsätze

Jedes Spielestudio sucht nach Möglichkeiten, die Produktion zu beschleunigen und gleichzeitig die Kosten zu reduzieren. DevOps bietet die beste Möglichkeit, beides zu erreichen. Lernen Sie zunächst die wichtigsten Grundsätze der DevOps-Methodologie kennen.

Vorteile von DevOps

Die Implementierung von DevOps-Verfahren optimiert die Entwicklungspipeline und steigert die Zufriedenheit des Teams und der Benutzer. Erfahren Sie mehr darüber, wie DevOps Sie unterstützen kann.

E-Book über Versionskontrolle

Sollten Sie zentralisiert oder dezentralisiert arbeiten? Beide Ansätze haben Vor- und Nachteile – in diesem kostenlosen E-Book erfahren Sie, welcher Ansatz zur Versionskontrolle für Ihr Team am besten geeignet ist.

Versionskontrolle für die Spieleentwicklung

Nutzen Sie verteiltes und zentralisiertes Arbeiten mit den Versionskontrollsystemen von Unity. Verwalten Sie große Binärdateien mit datei- und änderungssatzbasierten Workflows. Speichern Sie Quellcode und Assets und verfolgen Sie Änderungen mit einem sicheren Versionskontrollsystem, das für jede Engine geeignet ist.

Wir verwenden Cookies, damit wir Ihnen die beste Erfahrung auf unserer Website bieten können. In unseren Cookie-Richtlinien erhalten Sie weitere Informationen.

Verstanden