Warum Nubosoft Git und LFS verwendet: Bei Nubosoft setzen wir auf Git in Kombination mit Git LFS (Large File Storage), um große Unity-Assets wie Texturen, Modelle und Audiodateien zu verwalten. Git LFS verhindert eine Überlastung des Repositories und hält die Versionskontrolle schnell und effizient. Wir sind überzeugt, dass Open-Source-Lösungen wie Git flexibler und vorhersehbarer sind als Unitys integrierte Dienste, die eine Gebühr pro Nutzer verlangen. Darüber hinaus können wir unseren eigenen LFS-Speicher auch für andere Projekte als Unity nutzen.
Unterschiede zwischen Versionskontrollsystemen
Git: Ein verteiltes System, bei dem jeder Benutzer den vollständigen Projektverlauf speichert. Dies ermöglicht Offline-Arbeit und flexible Workflows, einschließlich Branching und Merging.
SVN: Ein zentrales Versionskontrollsystem, das eine Verbindung zum Hauptserver erfordert. Es unterstützt einfachere Workflows, ist jedoch weniger skalierbar als Git.
Perforce: Ein zentrales System, das für die Verwaltung großer Binärdateien optimiert ist. Es wird häufig in der Spieleentwicklung und in Branchen mit umfangreichen Asset-Dateien eingesetzt.
Unity Version Control: Bietet umfassende Versionskontrollfunktionen, einschließlich Branching, Merging und File Locking, speziell für Unity-Projekte. Es integriert sich nahtlos in den Unity Editor und verbessert die Zusammenarbeit im Team.
Verstehen von .gitignore-Dateien: Um Repositories sauber zu halten, ist es wichtig, unnötige Dateien auszuschließen. Unity oder Visual Studio erzeugen viele temporäre Dateien, die nicht verfolgt werden sollten. Eine ordnungsgemäße .gitignore
-Datei verhindert Überfrachtung und Konflikte. Die aktuell empfohlenen Dateien für verschiedene Zwecke findest du hier: https://github.com/github/gitignore
Wesentliche Vorteile der Versionskontrolle: Die Nutzung von Versionskontrolle stellt sicher, dass du keine alten Daten verlierst, sicher aktualisieren und Projekte mit Vertrauen refaktorisieren kannst. Backups sind entscheidend – selbst für Einzelentwickler –, um Datenverlust und Fehler zu vermeiden. Zudem wird das Nachverfolgen des Fortschritts über die Zeit hinweg mühelos.
Kein Backup, kein Mitleid! Sei nicht faul – mach es zur Gewohnheit! Das Erste, was wir tun, wenn wir ein neues Projekt erstellen, ist das Einrichten des GIT-Repositories, selbst für Prototypen.
Best Practice – Nutze Feature-Branches: Für größere Refaktorierungen oder neue Features sollten separate Branches erstellt werden. Selbst wenn du alleine arbeitest, bleibt der Haupt-Branch stabil und das Risiko, das Projekt zu zerstören, wird minimiert.
Warum Rebase wichtig ist: Rebase hält den Commit-Verlauf sauber und linear. Es ermöglicht eine reibungslose Integration von Upstream-Änderungen ohne unübersichtliche Merge-Commits. Dies ist besonders hilfreich bei der Zusammenarbeit in großen Teams.
Ein häufiges Szenario ist, dass zwei Entwickler parallel arbeiten und jeweils mehrere Commits erstellen, bevor sie pushen. Um mit den neuesten Änderungen Schritt zu halten, können Entwickler mit folgendem Kommando ihre lokalen Branches auf den Remote-Branch rebasen
– vorausgesetzt, es treten keine Konflikte auf. Diese Vorgehensweise lässt sich natürlich auch auf unterschiedliche Branches anwenden.
git rebase origin/main
A---B---C branch (Developer 1 - local) / D---E---F---G main (Developer 2 - remote) | A'--B'--C' branch (Developer 1 - local) / D---E---F---G main (Developer 2 - remote) |
Wenn du diese Best Practices befolgst, kannst du deine Unity-Projekte schützen, die Zusammenarbeit verbessern und einen sauberen Entwicklungs-Workflow sicherstellen.