es posible? Imagina que tengo proyectos Parent & Child. Ambos son repositorios de git. Child es un submódulo de Parent.
¿Puedo editar la versión de Child que está dentro de Parent y confirmarlos y enviarlos como un repositorio normal?
¿O necesito un clon separado de Child en algún lugar en el que realice cambios?
Gracias.
mar Örlygsson
No necesitas un clon separado. La carpeta del submódulo es un mundo en sí mismo. Simplemente edite, confirme, bifurque y presione para el deleite de su corazón.
Git es genial de esa manera. 🙂
Por cierto, el repositorio principal incluso detectará cuándo ocurren cambios dentro de la carpeta del submódulo y le ofrecerá confirmar el estado actual del submódulo como el nuevo punto de referencia oficial para clones del repositorio principal.
Nota IMPORTANTE:
Asegúrate de hacerlo git checkout master
(o alguna otra rama) dentro de la carpeta del submódulo antes de comenzar a piratear.
Luego, también asegúrese de que cuando confirme el estado actualizado del submódulo, usted push
esos compromisos con un repositorio público, o al menos que no rebase o cambie el historial dentro del submódulo después, ya que eso corrompería la referencia del padre al historial del submódulo.
Pisa con cuidado. (Punta de sombrero para @pjmorse por el recordatorio).
Línea de fondo:
Sí. Desarrollar dentro de una carpeta de submódulo es posible ya menudo conveniente, pero no exento de riesgos. Elija sabiamente su modelo de desarrollo
-
+1 al hacer un pago primero. Además, desea asegurarse de tener un repositorio secundario limpio (con los cambios confirmados) antes de cambiar de sucursal o realizar otro trabajo en Parent.
– Walter Mundt
25 de marzo de 2011 a las 1:29
-
No he tenido problemas con los cambios no confirmados en los submódulos cuando trabajo en el repositorio principal cuando realizo un trabajo diario simple (editar, confirmar, extraer, enviar) en el principal. Sin embargo, el cambio de ramas y las operaciones de actualización de submódulos pueden resultar riesgosos. ¡Buen punto!
– Mar Örlygsson
25 de marzo de 2011 a las 1:39
-
No es una mala idea desarrollar en un clon, solo para reducir las posibilidades de cometer errores accidentalmente con HEAD desconectado. Por supuesto, también puedes usar ganchos para comprobarte a ti mismo.
– Cascabel
25 de marzo de 2011 a las 2:59
De acuerdo con la documentación:
Si desea realizar un cambio dentro de un submódulo, primero debe verificar una rama, realizar sus cambios, publicar el cambio dentro del submódulo y luego actualizar el superproyecto para hacer referencia a la nueva confirmación.
Por lo que puedo decir, si está trabajando en la rama donde se agregó el submódulo, puede editar Child y volver a su repositorio. Pero si no es el desarrollador que agregó Child a Parent, está trabajando con un jefe independiente y deberá verificar una versión separada de Child para realizar cambios, o realizar los cambios y exportar los parches (usando git format-patch
) para que otra persona se comprometa (a través de git am
).
-
“maestro” podría muy bien ser la rama que revisa. ¡Pero haces un buen punto!
– Mar Örlygsson
25 de marzo de 2011 a las 1:14
Consulte también stackoverflow.com/questions/1979167/git-submodule-update/…
– VoC
25 de marzo de 2011 a las 5:10