572 Stimmen

Wie verwendet man Git für Unity3D Quellcode-Verwaltung?

Was sind bewährte Verfahren für die Verwendung von Git Quellcodeverwaltung mit Unity 3D, insbesondere im Umgang mit der binären Natur von Unity 3D Projekten? Bitte beschreiben Sie den Workflow, welche Pfade in .gitignore enthalten sein sollten, welche Einstellungen in Unity und/oder im Projekt vorgenommen werden sollten und alle anderen besonderen Dinge, die beachtet werden sollten.

Hinweis: Mir ist bewusst, dass die Verwendung des Asset Servers der von Unity empfohlene Weg ist, aber ich würde aus verschiedenen Gründen gerne Git verwenden. Bitte keine Antworten, die behaupten oder argumentieren, dass ich einfach den Asset Server verwenden sollte. Der Asset Server ist für mich wirklich keine Option.

7voto

EllisonLee Punkte 71

Nur die Assets und ProjectSettings Ordner müssen unter git Versionskontrolle sein.

Sie können ein gitignore wie folgt erstellen.

[Ll]ibrary/
[Tt]emp/
[Oo]bj/

# Autogenerierte VS/MD-Lösungs- und Projektdateien
*.csproj
*.unityproj
*.sln
*.suo
*.userprefs

# Mac
.DS_Store
*.swp
*.swo

Thumbs.db
Thumbs.db.meta

.vs/

5voto

Shahbaz Ali Punkte 109

Unity bietet auch seine eigene Versionsverwaltung. Vor Unity5 war es der Unity Asset Server, aber jetzt ist er veraltet und hat ein neues SVN-Control-System namens Unity Collaborate gestartet. Das Hauptproblem bei der Verwendung von Unity und SVN besteht darin, Szenen zu committen und zu mergen. Kein SVN gibt uns jedoch einen Weg, um diese Art von Konflikten zu lösen oder Szenen zu mergen. Also hängt es davon ab, mit welchem SVN du vertraut bist. Ich benutze das SmartSVN-Tool auf dem Mac und Turtle auf Windows.

Bildbeschreibung hier eingeben

3voto

zambari Punkte 4822

Gerade zum Thema Gitignore noch etwas hinzufügen. Der empfohlene Weg ignoriert nur Library und Temp, wenn es sich im Stammverzeichnis Ihres Git-Projekts befindet. Wenn Sie wie ich sind und manchmal das Unity-Projekt Teil des Repos sein muss, nicht das gesamte Repo, wären die korrekten Zeichenfolgen in der gitignore:

**/[Tt]emp
**/[Ll]ibrary
**/[Bb]uild

2voto

Ich würde dringend empfehlen, auf PlasticSCM umzusteigen. Es ist etwas, das Unity migriert hat und einen Designer-Entwickler-Workflow bietet, um die Versionskontrolle für etwas Komplexes wie die Spieleentwicklung zu verwalten.

Sie können die Cloud-Edition für 3 Benutzer kostenlos erhalten. Dies ersetzt das Unity Collaborate-Tool.

Hinweis: Ich hatte wirklich Schwierigkeiten, Git/Bitbucket und SourceTree für die Verwaltung eines einfachen Projekts zu verwenden.

https://unity.com/products/plastic-scm

0voto

vasmos Punkte 2444

Ich wollte einen sehr einfachen Workflow von jemandem hinzufügen, der in der Vergangenheit mit git frustriert war. Es gibt verschiedene Möglichkeiten, git zu verwenden, wahrscheinlich die häufigsten für Unity sind GitHub Desktop, Git Bash und GitHub Unity

https://assetstore.unity.com/packages/tools/version-control/github-for-unity-118069.

Im Grunde genommen machen sie alle das Gleiche, aber es ist die Entscheidung des Benutzers. Sie können git für die Einrichtung großer Dateien haben, die 1GB kostenlosen großen Dateispeicher mit zusätzlichem Speicher in Datenpaketen für $4/Monat für 50GB ermöglichen, und somit können Dateien >100mb in Remote-Repositories verschoben werden (die eigentlichen Dateien werden auf einem Server und in Ihrem Repo als Zeiger gespeichert)

https://git-lfs.github.com/

Wenn Sie aus irgendeinem Grund kein LFS einrichten möchten, können Sie Ihre Projekte in Windows nach Dateien > 128 MB scannen, indem Sie im Verzeichnis, in dem sich Ihr Projekt befindet, size:large eingeben. Dies kann nützlich sein, um nach großen Dateien zu suchen, obwohl einige Dateien zwischen 100 MB und 128 MB übersehen werden könnten.

Bildbeschreibung hier eingeben

Das allgemeine Format von git bash ist

git add . (fügt Dateien hinzu, die committet werden sollen)

git commit -m 'Nachricht' (committet die Dateien mit einer Nachricht, sie befinden sich immer noch auf Ihrem PC und nicht im Remote-Repository, grundsätzlich wurden sie als neuer Commit 'versioniert')

git push (schiebt Dateien ins Repository)

Der Nachteil von git bash für Unity-Projekte ist, dass Sie keinen Fehler erhalten, wenn eine Datei > 100MB ist, bis Sie pushen. Dann müssen Sie Ihren Commit rückgängig machen, indem Sie Ihren Kopf auf den vorherigen Commit zurücksetzen. Ein bisschen umständlich, besonders wenn Sie neu bei git bash sind.

Der Vorteil von GitHub Desktop ist, DASS es Ihnen VOR dem Commit von Dateien mit 100MB eine Popup-Fehlermeldung gibt. Sie können dann diese Dateien verkleinern oder sie zu einer .gitignore-Datei hinzufügen.

Um eine .gitignore-Datei zu verwenden, erstellen Sie eine Datei namens .gitignore im Stammverzeichnis Ihres lokalen Repositorys. Fügen Sie einfach die Dateien hinzu, die Sie weglassen möchten, eine Zeile nach der anderen. SharedAssets und andere nicht-Asset-Ordnerdateien können normalerweise weggelassen werden und werden automatisch im Editor neu erstellt (Pakete können erneut importiert usw. werden). Sie können auch Wildcards verwenden, um Dateitypen auszuschließen.

Wenn andere Personen Ihr GitHub-Repo verwenden und Sie klonen oder pullen möchten, stehen Ihnen diese Optionen auch auf GitHub Desktop oder Git Bash zur Verfügung.

Ich habe nicht viel über das Unity GitHub-Paket erwähnt, mit dem Sie GitHub im Editor verwenden können, weil ich persönlich die Benutzeroberfläche nicht sehr nützlich fand und ich glaube nicht, dass es insgesamt dazu beiträgt, dass sich jemand mit git vertraut macht, aber das ist nur meine Meinung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X