¿Cómo administrar múltiples proyectos basados ​​en la misma plantilla en git?

Recientemente escribí un software de blogging muy simplist y genérico utilizando Rails que actualmente he alojado en github.

Soy relativamente nuevo en el uso de git, pero me gustaría utilizar este proyecto como plantilla para diseñar otro proyecto en el que necesite una funcionalidad similar (capacidad de publicar algo, dejar comentarios, etc.). También quiero la capacidad de hacer que los cambios de mi nuevo proyecto vuelvan al anterior, en caso de encontrar un error o encontrar una nueva funcionalidad común que deseo devolver.

¿Cuál sería la forma correcta de manejar esta configuration en git? ¿Debo bifurcar mi original o clonarlo e insertlo en un nuevo repository, luego agregar el original como segundo control remoto o algo completamente diferente?

La clonación es bifurcación en ese caso, por lo que no hay diferencia. En ambos casos, obtiene el historial, todo lo que necesita (o más bien, lo que especifica / valores pnetworkingeterminados).

El enfoque que mencionaste sería el path a seguir, sí.

Puede enviar sets de cambios individuales a su repository original más adelante para aplicar los cambios allí también.

No he hecho esto antes, pero he estado en la situación de crear templates para repositorys de control de versiones. Así es como haría lo que quieres.

  1. Cree una pequeña familia de templates clonando. Haga que el set sea de solo lectura desde fuera de la familia.
  2. Para crear un nuevo proyecto, clonar desde una plantilla.
  3. Cuando encuentre algo que desee agregar o quitar de una plantilla, edite una copy de trabajo de la plantilla y presione. Haga esto incluso si significa hacer el cambio dos veces: una vez en un proyecto y una vez en la plantilla.
  4. Extraiga de los proyectos para actualizarlos a la última versión de su plantilla.

La última atracción es importante porque las personas no apreciarán que sus proyectos cambien cuando cambien sus templates. La actualización debe ser voluntaria y planificada por el equipo del proyecto.

No usaría múltiples controles remotos para esto.