submodulos submodules submodule recurse para documentos colores git-submodules git-subtree git-repo git-subrepo git-slave

git-submodules - recurse - github submodules



¿Alternativas a los submódulos de Git? (3)

Actualmente utilizo submódulos para el desarrollo y no solo para relacionar bibliotecas de terceros. Hay algunas maneras en que puede hacer la vida más fácil con los submódulos, especialmente cuando son la fuente de conflictos de fusión o rebase. Mire a ls-tree para obtener las 2 confirmaciones involucradas en un conflicto en el submódulo. Esta es probablemente la parte más difícil de los submódulos con los que las personas deben lidiar. Por ahora, las secuencias de comandos harán esto mucho más fácil de trabajar. Las versiones futuras de Git deberían tener un mejor soporte nativo para tratar con ellos.

Espero que esto ayude.

Siento que el uso de submódulos de Git es algo molesto para mi flujo de trabajo de desarrollo. He oído hablar de Git subárbol y Gitslave.

  • ¿Hay más herramientas disponibles para múltiples proyectos de repositorio y cómo se comparan?
  • ¿Se pueden ejecutar estas herramientas en Windows?

Lo que es mejor para usted depende de sus necesidades, deseos y flujo de trabajo. En algunos sentidos, son semi-isomorfos, es solo que algunos son mucho más fáciles de usar que otros para tareas específicas.

  • gitslave es útil cuando controla y desarrolla en los subproyectos más o menos al mismo tiempo que el superproyecto y, además, cuando normalmente desea etiquetar, ramificar, empujar, tirar, etc. todos los repositorios al mismo tiempo. Gitslave nunca ha sido probado en ventanas que yo sepa. Requiere perl.

  • git-submodule es mejor cuando no controla los subproyectos o, más específicamente, desea arreglar el subproyecto en una revisión específica incluso cuando el subproyecto cambia. git-submodule es una parte estándar de git y, por lo tanto, funcionaría en windows.

  • git-subárbol proporciona una interfaz para la estrategia de fusión de subárbol incorporada de git. Es mejor cuando prefieres tener un historial de git "unificado" de repositorio único. A diferencia de la estrategia de fusión de subárbol, es más fácil exportar cambios a los diferentes árboles (directorios) al proyecto original, pero no es tan automático como lo es con gitslave o incluso con git-submodule.

  • en teoría, repo es similar a gitslave, pero no está tan bien documentado para las operaciones que no sean de Android que he encontrado. Está bastante dedicado al modelo de desarrollo de Google Android y solo admite de forma nativa un puñado de comandos git (aunque puede ejecutar comandos arbitrarios) y el soporte nativo limitado no es compatible, por ejemplo, con un repositorio centralizado para enviar y verificar un La rama parece bastante difícil.

  • El mr de kitenet es lo que querría usar si tiene varios sistemas de control de versión en uso, pero en su mayoría está limitado para los superproyectos solo para git debido a su enfoque de mínimo común denominador. Hay formas de ejecutar comandos arbitrarios, pero no están tan bien integrados.


Nos encontramos con un problema similar al usar submódulos de Git en proyectos en los que teníamos dependencias en una variedad de idiomas. Para lidiar con ellos, creamos una herramienta llamada MDLR ("Modular") de código abierto que le brinda dependencias declarativas de Git controladas por versión con una funcionalidad similar a los submódulos de Git, pero sin el molesto flujo de trabajo. Puede instalarlo y administrar sus dependencias con las instrucciones / descargas en el repositorio de GitHub.