Unity Git Setup

Unity-Projekte für Teamarbeit mit Git einrichten

Ein Unity-Repository funktioniert im Team nur zuverlässig, wenn Serialisierung, Meta-Dateien, Text-Merge, große Binärdateien und Lock-Regeln getrennt behandelt werden. Dieses Setup schafft eine überprüfbare Basis, bevor der erste echte Konflikt entsteht.

7 Wolves 29. Juli 2026 10 Min. Lesezeit Git Setup

Die Unity-Basis zuerst festlegen

  1. Unter Editor Settings > Asset Serialization den Modus Force Text aktivieren.
  2. Unter Version Control sichtbare Meta-Dateien verwenden.
  3. Assets/, Packages/ und ProjectSettings/ versionieren.
  4. Generierte Ordner wie Library/, Temp/, Logs/ und lokale Build-Ausgaben ignorieren.

Eine verschobene Asset-Datei muss immer zusammen mit ihrer .meta-Datei committed werden. Andernfalls ändert sich die GUID-Beziehung und Referenzen können brechen.

Text-Merge und Binärspeicher in .gitattributes trennen

*.unity  text
*.prefab text
*.asset  text
*.mat    text

*.psd  filter=lfs diff=lfs merge=lfs -text
*.fbx  filter=lfs diff=lfs merge=lfs -text
*.wav  filter=lfs diff=lfs merge=lfs -text
*.mp4  filter=lfs diff=lfs merge=lfs -text

Textserialisierte Unity-Assets dürfen nicht pauschal als LFS-Binärdateien behandelt werden, wenn das Team sie diffen oder mergen will. Regeln für Smart Merge beziehungsweise ein Mergetool werden separat konfiguriert.

Git LFS gezielt einsetzen

Git LFS ist für große, nicht sinnvoll textuell vergleichbare Dateien gedacht: etwa PSD, FBX, Audio, Video und große Texturen. Prüfen Sie vor dem Rollout, ob alle Entwickler und CI-Runner LFS installiert haben, ob Locks auf dem Hosting funktionieren und wie alte Binärhistorie migriert wird.

Eine Dateiendung allein reicht nicht immer. Legen Sie Regeln anhand realer Größe, Änderungsfrequenz und Merge-Fähigkeit fest.

Smart Merge mit semantischem Review ergänzen

UnityYAMLMerge kann textserialisierte Scenes und Prefabs automatisch zusammenführen. Das Ergebnis sollte trotzdem geprüft werden, besonders bei Hierarchie-, Referenz- und Prefab-Override-Änderungen. MergeSight für Git-basierte Unity-Reviews zeigt Base/Ours/Theirs als Unity-Struktur, bevor ein riskantes Ergebnis geschrieben wird.

Dokumentieren Sie, ob das Team den offiziellen git mergetool-Weg oder einen separaten Merge Driver nutzt. Beides ist möglich, aber nicht dieselbe Git-Konfiguration.

Nur die richtigen Assets sperren

Locks sind sinnvoll für große Binärquellen und wenige stark gekoppelte Assets, bei denen parallele Bearbeitung teurer ist als Koordination. Textserialisierte Scenes und Prefabs pauschal zu sperren verhindert dagegen oft nützliche parallele Arbeit. Kombinieren Sie Locks mit Scene-Aufteilung, Prefab-Ownership und klaren Übergaberegeln.

Täglicher Team-Workflow

  1. Vor Arbeitsbeginn pullen und LFS-Locks prüfen.
  2. Kleine, thematisch geschlossene Commits erstellen.
  3. Scene- und Prefab-Änderungen vor dem Push semantisch prüfen.
  4. Konflikte mit Base/Ours/Theirs lösen, Ergebnis in Unity öffnen und Console prüfen.
  5. CI auf Konfliktmarker, fehlende Meta-Dateien, kaputte Referenzen und importierbare Assets prüfen lassen.

Das Setup mit einem absichtlichen Konflikt validieren

git check-ignore -v Library/
git check-attr -a -- Assets/Scenes/Main.unity
git lfs track
git status

Lassen Sie anschließend zwei Test-Branches unterschiedliche Objekte derselben Scene ändern. Prüfen Sie Merge-Aufruf, Review, Backup, Unity-Import und CI. Erst danach ist das Setup für das Team belastbar.

Häufige Fragen

Welche Unity-Ordner gehören in Git?

Üblicherweise werden Assets, Packages und ProjectSettings versioniert. Library, Temp, Logs, Obj sowie lokale Build- und IDE-Ausgaben sind generiert und gehören in der Regel in .gitignore.

Sollten .unity- und .prefab-Dateien in Git LFS liegen?

Nicht pauschal. Bei Force Text sind sie textserialisiert und können mit Unity-aware Tools verglichen und gemergt werden. LFS ist eher für große Binärquellen geeignet; Locking kann für ausgewählte Hochrisiko-Assets separat sinnvoll sein.

Braucht ein Unity-Projekt UnityYAMLMerge?

Für Teams, die textserialisierte Scenes und Prefabs parallel ändern, ist UnityYAMLMerge eine sinnvolle Smart-Merge-Basis. Das automatisch erzeugte Ergebnis benötigt bei bedeutenden Struktur- oder Referenzänderungen weiterhin Review und Validierung.

Wie teste ich, ob .gitattributes greift?

Mit git check-attr sehen Sie die Attribute einer konkreten Datei. Ergänzen Sie diesen Check durch einen realen Testkonflikt, weil ein korrektes Attribut allein noch keinen funktionierenden Mergetool- oder Driver-Aufruf beweist.

Fazit

Text und Binärdateien trennen

Force Text erhält diffbare Unity-Assets; LFS speichert gezielt große Binärquellen.

Meta-Dateien sind Teil des Assets

Asset und .meta müssen gemeinsam verschoben, committed und reviewed werden.

Setup praktisch testen

Ein kontrollierter Konflikt deckt Fehler in Attributes, Mergetool, LFS und CI früher auf.