Tengo varias aplicaciones en subdominios en varios servidores Cada aplicación tiene su propio repositorio git. Cada aplicación usa varios archivos compartidos. Esencialmente, mis repos se superponen. ¿Cómo se maneja mejor esta situación con múltiples editores de múltiples proyectos?¿Cómo compartir archivos en repositorios git?
Respuesta
Intentaría hacer todas las partes superpuestas git submodules.
Parece que debe dividir los elementos comunes para que haya una distinción clara, luego use submódulos. Asegúrate de separar claramente las piezas comunes, de lo contrario es probable que termines con un desastre inmanejable.
Mientras los proyectos múltiples presionen sus cambios en el submódulo hasta la ubicación compartida, todos pueden hacer cambios en el recurso compartido. Dicho esto, si uno de ellos necesita que los suyos sean 'especiales', tendrán que ramificar el submódulo.
https://git-scm.com/book/en/v2/Git-Tools-Submodules
Esto le guía a través de un proyecto súper de cartuchos, la edición del submódulo dentro del proyecto de super y empujándolo hacia arriba. También muestra el único peligro que sobrescribe silenciosamente los cambios si ejecuta git submodule update
y usted tuvo cambios locales sin usar en la rama principal.
Específicamente, en algún lugar que tenga una carpeta compartida 'carpeta' - tendrá que eliminar esto de todos los proyectos de git, pero cree un nuevo repositorio git en algún lugar con los contenidos actuales como la confirmación inicial. Luego, tendrá git submodule <repo> folder; git submodule update
en todos los proyectos que ahora lo compartirán. Todos podrán impulsar los cambios hasta el repositorio compartido, y podrán desplegar los cambios de los demás.
También podría usar la herramienta git-subrepo. La página wiki está vinculada. Básicamente es una versión mejorada de submodule
y subtree
.
- 1. Tener múltiples repositorios Git
- 2. Cómo sincronizar dos repositorios git
- 3. ¿Cómo organizas tus repositorios git?
- 4. ¿Cómo comparo dos repositorios git?
- 5. Cómo sincronizar repositorios Git en 2 servidores
- 6. Cómo clonar repositorios git en redmine?
- 7. git fusionar diferentes repositorios?
- 8. Compartir archivos en SVN
- 9. repositorios git anidados?
- 10. ¿Cómo se combinan dos repositorios git?
- 11. ¿Puedo fusionar dos repositorios Git con contenido similar pero sin compartir ancestros?
- 12. git + archivos parcialmente compartidos entre sucursales/repositorios. ¿Es posible?
- 13. mover archivos entre repositorios Git y preservar la historia
- 14. Administración de muchos repositorios git
- 15. ¿Cómo puedo sincronizar archivos en dos repositorios git diferentes (no clones) y mantener el historial?
- 16. ¿Cómo mantener dos repositorios git sincronizados?
- 17. Cómo mantener los repositorios GIT sincronizados
- 18. ¿Cómo configurar repositorios públicos de git?
- 19. Cómo detectar conflictos entre dos repositorios git.
- 20. ¿Cómo compartir un archivo de configuración en git?
- 21. repositorios git anidados sin submódulos?
- 22. La fusión de dos repositorios Git
- 23. ¿Debería comprometer .gitignore en los repositorios Git?
- 24. Usando dos repositorios git en una carpeta
- 25. grep para cosas en múltiples repositorios git
- 26. ¿Cómo agrego archivos y carpetas a los repositorios de GitHub?
- 27. ¿Cómo habilito la cadena de identificación para repositorios Git?
- 28. Cómo anidar repositorios de git; buscar y fusionar
- 29. Concatenar la historia de dos repositorios Git?
- 30. ¿Cómo busco todos mis repositorios git en mi Mac?
Después de algunas investigaciones, parece que no puedo editar el recurso compartido como un submódulo. Idealmente, nos gustaría poder editar los proyectos compartidos de otros proyectos en los que están incluidos, pero mantener una ubicación central. ¿Esto todavía es posible con los submódulos? – tbeseda
Las personas que trabajen en cualquiera de los proyectos en los que están incluidas podrán realizar cambios en los submódulos, pero los cambios deben rastrearse por separado. No hay forma de impulsar cambios a un repositorio de git y hacer que se dé cuenta de que algunos de los cambios también deberían enviarse a otro repositorio. – mckeed
Aquí hay un par de documentos más que utilizan un enfoque paso a paso: http://git-scm.com/book/en/Git-Tools-Submodules y https://git.wiki.kernel.org/index .php/GitSubmoduleTutorial – Sean