Me gustaría incorporar un proyecto existente (alojado en GitHub) como parte de mi proyecto (en un subdirectorio) mientras se mantiene el historial y la capacidad de actualizar ese proyecto. Me he dado cuenta que no puede haber unos tres enfoques:Git/GitHub: fork, subtree merge o submodule para el código externo?
- Tenedor el proyecto original, mueva el contenido original en un subdirectorio y empujarlo a mi repo GitHub.
- Inicia un nuevo repositorio, haz un subárbol combina con el repositorio existente y presiona a mi repositorio de GitHub.
- Clonar el repositorio existente, hacer un nuevo repositorio principal, poner el repositorio clonado en el principal como un submódulo, pulsar.
La variante (1) podría ser la preferible en GitHub ya que probablemente puedan compartir las fuentes. Pero, lógicamente, mi proyecto no es una bifurcación del existente. Más bien, el existente es solo un módulo. Además, no estoy seguro si mover el código existente en un subdirectorio podría no generar problemas. Probablemente preferiría la (2) variante ya que solo hay un repositorio. (3) requeriría trabajar con varios repos, pero lógicamente es lo más cercano a mi situación.
He investigado esto bastante, pero definitivamente no estoy seguro. ¿Qué recomendarías en esta situación? ¡Gracias de antemano!
No creo que la horquilla sea estrictamente necesaria si no necesita cambiar el submódulo, ¿no? – iwein
@iwein: correcto, pero el OP mencionó explícitamente "mientras se mantiene el historial y la capacidad de actualizar ese proyecto": es decir, necesita actualizar ese submódulo. De ahí mi proposición incluyendo un tenedor. – VonC
Gracias por los consejos. Vamos a aclarar la situación. El otro proyecto es un proyecto externo que no mantengo. Solo lo uso como parte de mi proyecto, pero quiero modificarlo. De vez en cuando me gustaría actualizar los cambios del proyecto externo a mi versión modificada. Además, no espero que mis cambios vayan al proyecto externo. Además de este proyecto externo modificado, espero que habrá más módulos que voy a crear. –