tipos tag repositorio qué que existen etiquetas eliminar crear git unity3d version-control

tag - qué tipos de etiquetas existen en git



¿Cómo usar Git para el control de fuente Unity3D? (13)

Ahora tenemos una perfecta integración a la unidad con la extensión Github to Unity ... https://unity.github.com/

La nueva extensión GitHub para Unity trae el flujo de trabajo de GitHub y más a Unity, brindando soporte para archivos grandes con Git LFS y bloqueo de archivos.

En el momento de escribir el proyecto está en alfa, pero aún se puede utilizar para proyectos personales.

¿Cuáles son las mejores prácticas para usar el control de código fuente de Git con Unity 3D, particularmente al tratar con la naturaleza binaria de los proyectos de Unity 3D? Describa el flujo de trabajo, qué rutas se incluirían en .gitignore, qué configuraciones se deberían establecer en Unity y / o el proyecto, y cualquier otra cosa especial que se deba tener en cuenta.

Nota: Me doy cuenta de que usar Asset Server es la forma recomendada por Unity, pero me gustaría usar Git por una variedad de razones. Por favor, no hay respuestas que indiquen o argumenten que solo debería usar el Servidor de Activos. El servidor de activos realmente no es una opción para mí.


En Unity 4.3 también tenía que habilitar la opción Externa desde las preferencias, pero desde Unity 4.5 se eliminó la opción para eso, por lo que el proceso de configuración completo se ve así:

  1. Cambie a Visible Meta Files en Editor → Project Settings → Editor → Version Control Mode
  2. Cambie a Force Text en Editor → Project Settings → Editor → Asset Serialization Mode
  3. Guardar escena y proyecto desde el menú File

También nuestro equipo está usando un archivo .gitignore un poco más extendido:

# =============== # # Unity generated # # =============== # Temp/ Library/ # ===================================== # # Visual Studio / MonoDevelop generated # # ===================================== # ExportedObj/ obj/ *.svd *.userprefs /*.csproj *.pidb *.suo /*.sln *.user *.unityproj *.booproj # ============ # # OS generated # # ============ # .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db

Tenga en cuenta que las únicas carpetas que debe mantener bajo control de origen son Assets y ProjectSettings .

Puede encontrar más información sobre cómo mantener Unity Project bajo el control de código fuente en esta publicación .


Las cosas principales que se deben recordar al usar git para el control de versión del código fuente de unity-3d:

(A) NO facture en la carpeta de la Biblioteca . ¡He cometido este error varias veces en el pasado y he sufrido por ello! Elimine O mueva la carpeta de la biblioteca antes de agregar su proyecto / archivos a git.

(B) Use "Metarchivos visibles" - para las versiones más nuevas de la unidad - 5.3.4 y superior, esto sucede por defecto. Para algunas de las versiones anteriores, necesita cambiar la configuración en: Editar-> Configuración del proyecto-> Control de versión

(C) Use un archivo .gitignore para Unity para asegurarse de que se mantiene la cordura y de que no se agreguen archivos innecesariamente . Busque en Google un archivo .gitignore para la unidad O bien, use este modelo .gitignore para Unity proporcionado por GitHub: https://github.com/github/gitignore/blob/master/Unity.gitignore

(D) Asegúrate de que el archivo .gitignore se agregue al repositorio como el primer archivo agregado, porque en el pasado me he perdido personalmente la adición del archivo .gitignore. Tengo muchos pensamientos en retrospectiva sobre por qué sucedió esto, pero hoy en día simplemente copio y agrego el archivo .gitignore como primer paso para configurar el repositorio.

Entonces ... para hacer que un proyecto de Unity esté listo para git, haga lo siguiente:

(1) Ir a la carpeta del proyecto

(2) Escriba git init.

(3) Copie el archivo .gitignore: En MacOS: cp ~ / Downloads / .gitignore En Windows: copie c: / Users [su nombre de usuario] / Downloads.gitignore.

(4) git add .gitignore

(5) git add *

Espero que esto ayude ... todo lo mejor!


Para agregar a todo lo indicado, también es ideal usar git lfs con Unity. He estado usando esto desde que salió y no ha tenido problemas.

Querrá agregar estos .gitattributes junto a su archivo .gitignore

*.cs diff=csharp text *.cginc text *.shader text *.mat merge=unityyamlmerge eol=lf *.anim merge=unityyamlmerge eol=lf *.unity merge=unityyamlmerge eol=lf *.prefab merge=unityyamlmerge eol=lf *.physicsMaterial2D merge=unityyamlmerge eol=lf *.physicsMaterial merge=unityyamlmerge eol=lf *.asset merge=unityyamlmerge eol=lf *.meta merge=unityyamlmerge eol=lf *.controller merge=unityyamlmerge eol=lf *.a filter=lfs diff=lfs merge=lfs -text *.mp3 filter=lfs diff=lfs merge=lfs -text *.wav filter=lfs diff=lfs merge=lfs -text *.aif filter=lfs diff=lfs merge=lfs -text *.ttf filter=lfs diff=lfs merge=lfs -text *.png filter=lfs diff=lfs merge=lfs -text *.jpg filter=lfs diff=lfs merge=lfs -text *.exr filter=lfs diff=lfs merge=lfs -text *.fbx filter=lfs diff=lfs merge=lfs -text *.FBX filter=lfs diff=lfs merge=lfs -text *.rns filter=lfs diff=lfs merge=lfs -text *.reason filter=lfs diff=lfs merge=lfs -text *.lxo filter=lfs diff=lfs merge=lfs -text

Esa es mi lista de archivos rodantes. Si usas archivos binarios adicionales, no listas, agrégalos.

También tengo archivos configurados para usar yamlmerge, necesitarías configurar esto. Puede leer sobre esto aquí: http://docs.unity3d.com/Manual/SmartMerge.html


Pensé que podría publicar un .gitignore más .gitignore para cualquier persona que esté interesada:

# Ignore Everything /* # Except for these: !/.gitignore !/Assets !/ProjectSettings



Puedes usar Github for Unity , una extensión de Unity que lleva el flujo de trabajo git a la interfaz de usuario de Unity.

https://unity.github.com/ acaba de lanzar la versión 1.0 de la extensión.


Solo añadiendo la asignatura de Gitignore. La forma recomendada solo ignora Library y Temp, si es su raíz de su proyecto git. Si eres como yo y a veces necesitas un proyecto de unidad para formar parte del repositorio, no la totalidad del repositorio, las cadenas correctas en gitignore serían:

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


Solo las carpetas Assets y ProjectSettings deben estar bajo el control de versiones de git.

Puedes hacer un gitignore como este.

[Ll]ibrary/ [Tt]emp/ [Oo]bj/ # Autogenerated VS/MD solution and project files *.csproj *.unityproj *.sln *.suo *.userprefs # Mac .DS_Store *.swp *.swo Thumbs.db Thumbs.db.meta .vs/


Unity también proporciona su propio control de versión de fuente. antes de unity5 era unityAsset Server pero ahora está depreciado. y lance un nuevo sistema de control de SVN llamado unity Collaborate. Pero el problema principal de la utilización de unity y cualquier SVN es el compromiso y la fusión de la escena. pero Non of svn nos da la forma de resolver este tipo de conflictos o fusionar escenas. Depende de usted con qué SVN está familiarizado. Estoy usando la herramienta SmartSVN en Mac. y tortuga en las ventanas.


Edit -> Project Settings -> Editor

Establecer el control de versión a los meta archivos. Establecer la serialización de activos para forzar el texto.

Creo que esto es lo que quieres.


El siguiente es un extracto de mi blog personal .

Usando Git con juegos 3D

Actualización de octubre de 2015: GitHub ha lanzado un complemento para Git llamado Git LFS que trata directamente el problema que se encuentra a continuación. ¡Ahora puedes fácilmente y eficientemente versionar archivos binarios grandes!

Git puede funcionar bien con juegos 3D listos para usar. Sin embargo, la principal advertencia aquí es que las versiones de archivos de medios grandes (> 5 MB) pueden ser un problema a largo plazo, ya que su historial de confirmación aumenta. Hemos resuelto este problema potencial en nuestros proyectos con solo la versión del activo binario cuando se considera final. Nuestros artistas en 3D utilizan Dropbox para trabajar en activos WIP , tanto por la razón anterior como porque es mucho más rápido y sencillo (¡no muchos artistas querrán usar Git!).

Git Workflow

El flujo de trabajo de Git es mucho más que usted necesita decidir por sí mismo, dadas sus propias experiencias como equipo y cómo trabajan juntos. Sin embargo. Recomendaría encarecidamente la metodología de Git Flow apropiadamente nombrada según lo describe el autor original aquí .

No voy a profundizar mucho aquí sobre cómo funciona la metodología, ya que el autor la describe a la perfección y con pocas palabras, por lo que es fácil de entender. He estado usando con mi equipo por un tiempo, y es el mejor flujo de trabajo que hemos probado hasta ahora.

Aplicación de cliente Git GUI

Esta es realmente una preferencia personal aquí, ya que hay bastantes opciones en términos de Git GUI o si usar una GUI. Pero me gustaría sugerir la aplicación gratuita SourceTree ya que se conecta perfectamente con la extensión Git Flow. Lea el tutorial de SourceTree aquí sobre la implementación de la metodología Git Flow en su aplicación.

Unity3D ignorar las carpetas

Para una comprobación de versión actualizada, Github mantuvo el archivo Unity.gitignore sin especificaciones del SO.

# =============== # # Unity generated # # =============== # Temp/ Library/ # ===================================== # # Visual Studio / MonoDevelop generated # # ===================================== # ExportedObj/ obj/ *.svd *.userprefs /*.csproj *.pidb *.suo /*.sln *.user *.unityproj *.booproj # ============ # # OS generated # # ============ # .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db

Configuraciones Unity3D

Para versiones de Unity 3D v4.3 y superiores:

  1. (Omita este paso en v4.5 y versiones posteriores) Habilite la opción External en Unity → Preferences → Packages → Repository .
  2. Abra el menú Edit y seleccione Project Settings → Editor :
    1. Cambia Version Control Mode a Visible Meta Files .
    2. Cambiar el Asset Serialization Mode para Force Text .
  3. Guarda la escena y el proyecto desde el menú File .

¿Quieres que migres tu repositorio existente a LFS?

Echa un vistazo a mi blog para ver los pasos sobre cómo hacerlo aquí .

Configuración adicional

Una de las pocas molestias importantes que uno tiene al usar Git con los proyectos de Unity3D es que a Git no le importan los directorios y con gusto dejará los directorios vacíos alrededor después de eliminar los archivos de ellos. Unity3D creará archivos * .meta para estos directorios y puede provocar una pequeña batalla entre los miembros del equipo cuando Git se comprometa a seguir agregando y eliminando estos meta archivos.

Agregue este /.git/hooks/ Git post-merge a la carpeta /.git/hooks/ para repositorios con proyectos Unity3D en ellos. Después de cualquier extracción / combinación de Git, verá qué archivos se han eliminado, verificará si el directorio en el que existía está vacío y, si es así, eliminarlo.


¿Qué es GIT?

Git es un sistema de control de versiones distribuido (SCM) gratuito y de código abierto desarrollado por Linus Torvalds en 2005 (fundador de Linux OS). Está creado para controlar todo, desde pequeños a grandes proyectos, con rapidez y eficiencia. Empresas líderes como Google, Facebook, Microsoft usan GIT todos los días.

Si desea obtener más información sobre GIT, consulte este tutorial rápido ,

En primer lugar, asegúrese de tener configurado su entorno Git. Debe configurar tanto su entorno local como un repositorio Git (prefiero Github.com).

Aplicación cliente GIT Mac / Windows

Para la aplicación de cliente GUI de GIT, te recomendé ir con Github.com,

GitHub es el lugar para compartir código con amigos, compañeros de trabajo, compañeros de clase y completos extraños. Más de cinco millones de personas usan GitHub para construir cosas asombrosas juntas.

Configuraciones Unity3D

Necesitas hacer estos ajustes.

Cambie a Metarchivos visibles en Edición → Configuración del proyecto → Editor → Modo de control de versiones.

Habilitar opción externa en Unity → Preferencias → Paquetes → Repositorio

Cambie a Forzar texto en Edición → Configuración del proyecto → Editor → Modo de serialización de activos.

Fuente: Uso de Git con control de fuente de juegos 3D