Comment utiliser Git pour Unity3D contrôle de code source?
Quelles sont les meilleures pratiques pour l'utilisation de Git contrôle de code source avec Unity 3D, en particulier en traitant de la nature binaire de l'Unité des projets en 3D? Veuillez décrire le flux de travail, quels sont les chemins qui serait inclus dans .gitignore, quels paramètres doivent être définis dans l'Unité et/ou le projet, et toutes les autres choses qui doivent être noté.
Note: je me rends compte que l'utilisation de l'Actif du Serveur est l'Unité de la façon recommandée, mais je voudrais utiliser Git pour une variété de raisons. S'il vous plaît pas de réponses que de l'état ou de dire que je doit simplement utiliser le Serveur Actif. Le Serveur Actif n'est vraiment pas une option pour moi.
- "il suffit d'utiliser svn" quel que soit inutile git V svn arguments, git n'est tout simplement pas pour les gros fichiers binaires. l'unité des projets de films (et de divers énorme fichiers binaires de textures etc), avec une poignée de lignes de code. souhaitez-vous utiliser git pour stocker votre collection de films? svn est au moins raisonnable.
- La solution la plus simple est tout simplement d'exclure tous les dossiers avec gitignore, et de n'utiliser git pour votre fichiers de code, et peut-être vos fichiers d'actifs. Tous les binaires n'ont pas besoin d'être inclus, car chaque membre de l'équipe peut compiler pour eux-mêmes?
- Les artistes ne peux pas compiler leurs propres fichiers exécutables.
- Même si c'était vrai, ils peuvent encore pousser de nouveaux actifs d'image, git... afin que les développeurs peuvent compiler avec la nouvelle œuvre d'art...
- Cela signifie que pour qu'un artiste puisse avoir besoin d'attendre pour un dev pour voir les engager et de faire un build afin de voir leur évolution dans le jeu. C'est une très longue itération de temps.
- Ou, plus précisément, il n'y aurait plus de décalage entre le moment où l'artiste A fait un changement et l'artiste B le voit, puisqu'il a pour aller à un dev et être compilé.
- Double Possible de Source de l'Arbre de l'Unité de projet Ghost fichiers
- Qu' .ignorer n'aborde pas le problème de "comment faire de nous version binaires actifs sans causer excessive des pensions de ballonnement?"
- Pour référence, l'Unité a une nouvelle fonctionnalité intégrée/service de venir unity3d.com/services/collaborate (pour la synchronisation projet avec d'autres personnes)
- Selon docs.unity3d.com/540/Documentation/Manual/... l'Unité semble recommander PlasticSCM. Dans le même temps, cette 'Collaborer' thingie est aussi mis en place pour la bêta. Avez-vous une idée de ce que les différences bw ces 2 options seront?
- il y a maintenant un l'Unité d'Extension pour ce
- C'est incroyablement incorrect d'utiliser git pour des choses comme la production de films, production de jeux, de la musique, de la production. C'est ce que SVN est pour. (git est strictement pour >>>source<<< (c'est à dire, "fichier texte") de manutention. git n'a pas de relation à la production de jeux vidéo.
- stackoverflow.com/q/36954266/294884
- votre commentaire est essentiellement l'expression "ne pas utiliser git". (Qui, de toute évidence, vous ne devriez pas.) L'unité de projets sont tous des fichiers binaires. (Bien sûr, avec une poignée de tout, mais hors de propos de petits fichiers texte.)
- il n'y a pas de "pensions de dilatation" lorsque vous travaillez dans le film, de musique ou de jeu industrty. C'est une idée absurde mate! Dire que nous faisions à la technique de la fin du prochain Ridley Scott film et vous l'avez souligné "oh, regarde, les pensions de titres a 3kb de fichiers texte et 400 to de ce film choses, comment pouvons-nous réduire le ballonnement?" C'est juste pas .. cohérente. Je n'ai jamais, jamais vu un vrai projet de jeu vidéo (à savoir: - une Unité de projet) de moins que le Sct.
- FWIW, historiquement "plasticscm" s'en alla.
- euh, les fichiers de script ne sont pas hors de propos... Mais je suis convaincu maintenant que git n'est pas la meilleure solution pour l'Unité 🙂
Vous devez vous connecter pour publier un commentaire.
Ce qui suit est un extrait de mon blog personnel .
Utiliser Git avec des Jeux en 3D
Mise à jour Oct 2015: GitHub a depuis sorti un plugin Git appelé Git EFT qui traite directement avec le problème ci-dessous. Vous pouvez maintenant facilement et efficacement la version des fichiers binaires volumineux!
Git peut bien fonctionner avec les jeux 3D de la boîte. Toutefois, le principal inconvénient ici est de version large (>5 MO), les fichiers multimédia peut être un problème sur le long terme que votre commit l'histoire gonfle. Nous avons résolu ce problème potentiel dans nos projets par la seule gestion des versions binaires de l'actif lorsqu'il est considéré comme définitif. Nos artistes 3D utiliser Dropbox de travailler sur WIP actifs, à la fois pour la raison ci-dessus et parce que c'est beaucoup plus rapide et plus simple (pas de nombreux artistes souhaitent activement à l'utilisation de Git!).
Workflow Git
Votre workflow Git est très bien quelque chose que vous devez décider pour vous-même compte tenu de vos propres expériences en tant qu'équipe et votre façon de travailler ensemble. Cependant. Je vous recommande fortement de le bien nommé Git Flow méthodologie tel que décrit par l'auteur original ici.
Je ne vais pas entrer dans trop de profondeur ici sur la manière dont la méthodologie des œuvres que l'auteur décrit parfaitement et en très peu de mots, alors il est facile de passer à travers. Je l'utilise avec mon équipe pour un certain temps maintenant, et c'est le meilleur flux de travail, nous avons essayé jusqu'à présent.
Git GUI Application Client
C'est vraiment une question de préférence personnelle ici, comme il y a bien quelques options en termes de Git GUI ou l'utilisation d'une interface graphique à tous. Mais je voudrais proposer à la libre SourceTree application comme il se branche parfaitement avec le Git Flow extension. Lire la SourceTree tutoriel ici sur la mise en œuvre de la Git méthode de Flux dans leur application.
Unity3D Ignorer Les Dossiers
Pour une version à jour checkout Github maintenu l'Unité.fichier gitignore sans OS spécificités.
Unity3D Paramètres
Pour les versions de Unity 3D v4.3:
External
option dansUnity → Preferences → Packages → Repository
.Edit
menu et choisissezProject Settings → Editor
:Version Control Mode
àVisible Meta Files
.Asset Serialization Mode
àForce Text
.File
menu.Vous voulez migrer votre repo au LFS?
Check out my blog post pour les étapes sur comment le faire ici.
De Configuration Supplémentaires
L'un des quelques grands inconvénients que l'on a avec l'aide de Git avec Unity3D projets est que Git n'a pas de soins sur les répertoires et sera heureux de laisser les répertoires vides autour de après la suppression de fichiers à partir d'eux. Unity3D va faire *.méta-fichiers de ces répertoires et peuvent provoquer un peu d'une bataille entre les membres de l'équipe lors de Git s'engage à garder l'ajout et de suppression de ces fichiers de métadonnées.
Ajouter cette Git post-fusion crochet à la
/.git/hooks/
dossier pour les dépôts avec Unity3D projets dans leur. Après tout Git pull/fusion, qu'il va chercher à ce que les fichiers ont été supprimés, vérifiez si le répertoire, il existait dans est vide, et si donc le supprimer.Hidden Meta Files
?Edit → Project Settings → Editor → Asset Serialization Mode
vaut de l'or!Dans l'Unité 4.3-vous également eu à activer l'option dans les préférences, mais depuis l'Unité de 4,5 qu'ils ont laissé tomber l'option pour que, si plein processus d'installation ressemble:
Visible Meta Files
dansEditor → Project Settings → Editor → Version Control Mode
Force Text
dansEditor → Project Settings → Editor → Asset Serialization Mode
File
menuÉgalement notre équipe est à l'aide d'un peu plus étendu
.gitignore
fichier:Noter que seuls les dossiers que vous devez garder sous contrôle de code source sont
Assets
etProjectSettings
.Plus d'informations sur le maintien de l'Unité du Projet sous contrôle de code source, vous pouvez trouver dans ce post.
Hidden Meta Files
?Qu'est-ce que GIT?
Git est un logiciel gratuit et open source distribué système de contrôle de version (SCM) développé par Linus Torvalds en 2005 ( Linux OS fondateur). Il est créé pour contrôler tout rom petit à de gros projets avec rapidité et efficacité. Leader des sociétés comme Google, Facebook, Microsoft utilise GIT de tous les jours.
Si vous voulez en savoir plus sur GIT cochez cette Tutoriel rapide,
Tout d'abord assurez-vous d'avoir votre Git de l'environnement mis en place.Vous devez définir votre environnement local et un dépôt Git (je préfère Github.com).
GIT application client Mac/Windows
Pour GIT gui application cliente, j'ai recommandé que vous y aller avec Github.com,
GitHub est le lieu de partage de code avec des amis, des collègues, des camarades de classe et des étrangers. Plus de cinq millions de personnes utilisent GitHub, pour construire ensemble des choses extraordinaires.
Unity3d paramètres
Vous avez besoin de faire ces paramètres
Interrupteur Visible Méta-Fichiers à Modifier → Paramètres du Projet → Éditeur → Contrôle de Version Mode.
Activer l'option dans l'Unité → Préférences → Paquets → Référentiel
Interrupteur pour Forcer le Texte à Modifier → Paramètres du Projet → Éditeur de → de l'Actif de la Sérialisation Mode.
Source:
à l'Aide de Git Avec les Jeux 3D de Contrôle de la Source
Preferences > Packages
dans l'Unité 5.x Normal ? tyÀ ajouter à tout ce qui a déclaré, il est également idéal pour une utilisation git eft avec l'Unité. J'ai été en utilisant ce depuis qu'il est sorti et je n'ai eu aucun problème avec.
Vous souhaitez ajouter ce
.gitattributes
à côté de votre.gitignore
fichierC'est mon roulement de la liste de fichiers. Si vous utilisez d'autres fichiers binaires ne sont pas répertoriés, les ajouter.
J'ai aussi des fichiers configurés pour utiliser yamlmerge, vous devez le configurer. Vous pouvez lire à ce sujet ici: http://docs.unity3d.com/Manual/SmartMerge.html
J'ai pensé que je pourrais poster un simple
.gitignore
pour quelqu'un qui est intéressé:UnityPackageManager/
etPackages/
).Nous avons maintenant une intégration transparente à l'unité avec Github à l'Unité d'extension...
https://unity.github.com/
La nouvelle GitHub pour l'Unité d'extension apporte le GitHub de flux de travail et plus d'Unité, de fournir un soutien pour les gros fichiers avec Git de l'EPA et de verrouillage de fichier.
Au moment de la rédaction du projet est en version alpha, mais il est encore utilisable pour des projets personnels.
Edit -> Project Settings -> Editor
Ensemble de Contrôle de Version pour les fichiers de métadonnées. Ensemble des Actifs de Sérialisation à la force du texte.
Je pense que c'est ce que vous voulez.
Les principales choses à retenir lors de l'utilisation de git pour unity-3d version du code source de contrôle:
(A) NE PAS l'enregistrement dans le dossier de la Bibliothèque de. J'ai fait cette erreur à plusieurs reprises dans le passé et ont souffert pour elle!
Supprimez OU déplacez un dossier de bibliothèque avant de les ajouter à votre projet /fichiers dans le dépôt git.
(B) Utiliser "Visible Méta-Fichiers" - pour les plus récents de l'unité, en version 5.3.4 et au-dessus de ce qui se passe par défaut. Pour certaines des versions antérieures, vous devez modifier les paramètres de la section:
Edit-> Paramètres du Projet-> Contrôle de Version
(C) Utiliser un .gitignore fichier pour l'Unité, pour s'assurer que la santé mentale est maintenu et les fichiers ne sont pas inutilement ajouté- si sur android, tizen - ajouter des règles pour exclure APK et TPK fichiers d'être ajouté au référentiel.
Autour de Google pour une .gitignore fichier d'unité OU d'autre utilisation de ce modèle .gitignore pour l'Unité, fourni par GitHub:
https://github.com/github/gitignore/blob/master/Unity.gitignore
(D) assurez-vous que l' .gitignore fichier est ajouté au référentiel comme le premier fichier ajoutée parce que dans le passé, personnellement, j'ai manqué d'ajouter .gitignore fichier. De nombreuses pensées en prenant du recul sur les raisons de ce qui s'est passé - mais aujourd'hui, je viens de copier et de les ajouter .gitignore fichier en tant que première étape de la mise en place du référentiel.
Donc... pour faire une Unité de projet prêt pour git, procédez de la manière suivante:
(1) Aller dans le dossier du projet
(2) Type
git init .
(3) Copier le .gitignore fichier:
Sur MacOS: cp ~/Téléchargements/.gitignore
Sur Windows: copier c:\Users[nom d'utilisateur]\Téléchargements.gitignore .
(4) la commande git add .gitignore
(5) git add *
Espère que cela aide... tout le meilleur!
Je préférerais que vous utilisez BitBucket, comme il n'est pas public et il y a un tutoriel officiel par l'Unité sur Bitbucket.
https://unity3d.com/learn/tutorials/topics/cloud-build/creating-your-first-source-control-repository
espère que cette aide.
Seulement la Actifs et ProjectSettings dossiers doivent être sous contrôle de version git.
Vous pouvez faire un gitignore comme ça.
Vous pouvez utiliser Github pour l'Unité, un l'Unité d'Extension qui apporte le workflow git dans l'INTERFACE utilisateur de l'Unité.
Github pour l'Unité vient de sortir la version 1.0 de l'extension.
L'unité également Fournir sa propre version de la Source de contrôle. avant unity5 il a été unityAsset Serveur, mais maintenant son amorti. et de lancer une nouvelle SVN système de contrôle appelé l'unité de collaborer.mais le principal problème à l'aide de l'unité et de tout SVN est en train de commettre et de la fusion de la scène . mais Non de svn nous donner la façon de résoudre ce type de conflits ou de fusion de la scène . donc dépendre de vous qui SVN, vous êtes familier avec . Je suis à l'aide de SmartSVN outil sur Mac . et tortue sur windows .
Juste ajouter sur le sujet de Gitignore.
La manière recommandée seulement ignore la Bibliothèque et Temp, si son wihtin racine de votre projet git. si vous êtes comme moi et parfois le besoin de l'unité de projet d'être une partie de l'opération, non pas à l'ensemble de l'opération, le bon chaînes dans gitignore serait: