Versionskontrolle mit GitHub in Unity

Dein Unity Projekt ist lokal auf deinem Computer gespeichert. Alle Inhalte werden im Projektordner gesichert und eine Verwaltung auf Basis von Versionen ist ein muss. In Unity hast du verschiedene Möglichkeiten, du kannst Unity Collaborate, Git, Plastic SCM oder Perforce. Da Unity Collaborate wegen der Speicherung der Daten auf Unity Servern und der Kosten für Unity Teams häufig nicht in Frage kommt, zeige ich dir in diesem Beitrag wie du Git verwenden kannst.

Ist Git in Unity möglich?

Die kurze Antwort: Ja, Git und GitHub sind in Zusammenhang mit Unity möglich.

Die lange Antwort: Ich persönlich verwende für viele der Unity Projekte GitHub als Versionsverwaltung und kann es dir nur wärmstens empfehlen. Ohne eine Versionsverwaltung, läufst du irgendwann Gefahr, deinen Fortschritt zu verlieren oder etwas zu überschreiben. Es ist äußerst schwer eine Übersicht zu behalten, wenn du mit mehreren EntwicklerInnen an einem Projekt arbeitest.

Eigenes Repository bei GitHub erstellen

Um dir bei GitHub dein eigenes Repository zu erstellen, wählst du auf dem Dashboard von GitHub innerhalb deines Accounts „New“ aus. Wenn du noch keinen Account hast, dann erstelle dir einen kostenlosen.

Neues Projekt anlegen bei GitHub

Durch das Klicken auf den „New“-Button erscheint eine neue Maske. Hier kannst du dein Repository anlegen. Ich empfehle dir für jedes Unity Projekt ein Repository anzulegen und nicht mehrere Projekte in eins zu packen.

Repository Einstellungen vornehmen

In der Maske legst du nicht nur fest, wie dein Repository heißen soll, sondern auch ob es Public oder Private gelistet werden soll. In unserem Beispiel wähle ich Private, da nur ich oder ausgewählte Personen den Inhalt sehen sollen.

Git Ignore Settings festlegen

Selektiere die folgenden Optionen zusätzlich:

  • Add a README file: Über diese Datei kannst du dann eine Beschreibung deines Projekts hinzufügen
  • Add gitignore – Unity: Damit werden bereits nur bestimmte Inhalte deines Unity Projekts per Git auf den Server übertragen

Klicke abschließend auf den „Create repository“ Button. Nun siehst du eine Übersicht deines erstellten Reposund erhältst dazu auch einen Direktlink. Alle Dateien werden hier abgespeichert und erscheinen in der Liste. Manche Dateien lassen sich auch mit einem Klick in der Vorschau ansehen.

GitHub Übersicht des Projekts

Dateien auf GitHub bearbeiten

Selektiere in deiner Liste die README.md Datei und ändere sie. Klicke dazu auf das Editieren-Symbol in der rechten oberen Ecke.

Datei bei GitHub bearbeiten

Ändere die Text Datei und scrolle nach unten um die Änderung zu übernehmen. Auch bei einer solchen kleinen Änderung musst du diese erst an das Repository übermitteln per Commit. Klicke auf den Button „Commit changes“ und überprüfe die Übersichtsseite deiner Datei.

Commit erstellen bei GitHub

Alle Änderungen kannst du in den Commits deines Projekts sehen. Gehe dazu auf die Hauptseite deines Repositories und klicken in der rechten oberen Ecke auf „X commits“.

GitHub Commit einsehen

Die Übersicht zeigt dir dann, welche Änderungen wann stattgefunden haben und du kannst dir auch ansehen, was genau denn geändert wurde. Klicke dazu auf einen beliebigen commit. Bereiche die in rot gekennzeichnet sind wurden entfernt und die grün markierten Stellen hinzugefügt.

Commit vergleichen

Unity Projekt für Git einrichten

Bevor du dein Unity Projekt mit dem Repository verlinkst, solltest du noch eine Einstellung in deinem Unity Projekt vornehmen.

Edit > Project Settings > Editor > Asset Serialization Mode > Force Text

Unity Projekt für Git einrichten

Edit > Project Settings > Editor > Version Control > Mode > Visible Meta Files

Unity Version Control Einstellungen vornehmen

Diese Einstellungen sind in neueren Versionen von Unity auch schon standardmäßig hinterlegt. Es ist aber sinnvoll, wenn du die Einstellungen vor dem ersten commit noch einmal überprüfst, da es sonst zu Schwierigkeiten kommen kann.

Git Client verwenden

Für Git gibt es verschiedene Tools um das Repository auf deinem Computer mit GitHub zu verlinken. Du kannst dies über die Kommandozeile tun oder eine App verwenden. Mein persönlicher Favorit ist GitKraken. Ein sehr mächtiges und übersichtliches Werkzeug für deine Repos.

Lade dir GitKraken herunter: https://www.gitkraken.com/ und melde dich mit deinem GitHub Account an.

GitKraken UI-Übersicht

Du kannst dich über die „Preferences“ auch bei den unterschiedlichen Services anmelden.

Um dein Unity Projekt zu deinem Repository hinzuzufügen wähle in GitKraken „Start a local repo“. Bei Initialize in fügst du den Pfad zu deinem Unity Projekt ein. Diesen findest du auch über das Unity Hub heraus. Danach fügst du den exakt gleichen Namen ein.

GitKraken Repo anlegen

Wähle Abschließend als Template noch Unity aus und klicke auf „Create Repository“.

In der Übersicht siehst du der rechten Seite die „unstaged Files“. Diese wurden noch nicht übertragen an Git. wählen den Button „Stage all changes“.

GitKraken Stage All Changes

Dadurch wandern die Dateien eine Ebene nach unten zu den „Staged Files“. Jetzt fügst du eine Nachricht bei Commit Message ein, also eine Beschreibung deiner Aktion. Danach finalisierst du das Ganze mit einem Klick auf „Commit changes to..“.

GitKraken Änderungen übermitteln

Diese Aktion siehst du jetzt in der Übersicht der Commits. Fügst du weitere Commits hinzu tauchen diese hier nach und nach auf.

GitKraken Übersicht der Commits

Lokales Repository auf Remote pushen

Deine Dateien befinden sich immer noch lokal auf deinem Computer. Im nächsten Schritt verbindest du dein lokales Repo mit GitHub. Wähle in GitKraken den Button „Push“ aus.

Lokals Repository pushen

Es erscheint eine Meldung „There is no remote to push to, would you like to add one?“. Wähle hier den Yes-Button aus. Du kannst deinen GitHub direkt auswählen und ein neues Repository erstellen oder auch per URL ein vorhandenes Repo auswählen. Die Daten dafür bekommst du auf deiner persönlichen GitHub Seite.

Remote hinzufügen

Sobald die Einrichtung des Remotes abgeschlossen ist, kannst du erneut auf den Push Button klicken um die Dateien an den Server zu senden. Klicke auf Submit und die Übertragung startet.

Besuche jetzt deine GitHub Seite und aktualisiere das Repo. Hier solltest du jetzt alle Dateien, die du von deinem PC übertragen hast finden.

Remote Übersicht bei GitHub

Git Repository für Unity klonen

Um bereits vorhandene Repositories über deinen Client klonen zu können, wählst du im Hauptmenü den Punkt „Clone a repo“ aus.

Repository klonen in GitKraken

Wähle deinen Zielordner wo du das Projekt abspeichern möchtest und gibt die entsprechende URL ein. Alternativ kannst du auch GitHub.com direkt auswählen und aus deinen Repos des verlinkten Accounts das entsprechende auswählen.

Verzeichnis festlegen

Sobald der Klonvorgang abgeschlossen ist kannst du über den Hinweis „Open Now“ das Projekt öffnen und einsehen.

Änderungen verwalten

Öffne in deinem Unity Projekt eine Datei und ändere sie. Im einem Beispiel ändere ich die Scene und zugleich auch ein C#-Skript. Alle Änderungen werden in GitKraken direkt in der Projektübersicht dargestellt. Selektiere „//WIP“ und du erhältst bei den Unstaged FIles eine Übersicht.

Änderungen verwalten – Staging

Die Details kannst du dir durch einen Doppelklick auf die jeweilige Datei anzeigen lassen. Es ist also die gleiche Ansicht die du auch bei GitHub bekommst.

Fortschritt in GitKraken vergleichen

Durch das Klicken auf „//WIP“ kannst du deinen Änderungen auch einen anderen Namen geben. Diese Änderungen werden erst auf dem GitHub Repo geändert, wenn du dem typischen Ablauf in GitKraken folgst:

  • Stage all changes auswählen
  • Commit changes to X files klicken
  • Push Button auswählen
  • Master Branch auswählen
Michael

Michael

Mein Name ist Michael. Ich bin IT-Trainer und Gründer der Lernplattform nobreakpoints. In unserem Blog bieten wir Tipps, Anleitungen und Beispiele für alle, die mit Hilfe von Unity Anwendungen erstellen möchten.