Comment gérer plusieurs projets basés sur le même model dans git?

J'ai récemment écrit un morceau de logiciel de blogging très simplist et générique en utilisant Rails que j'ai actuellement hébergé sur github.

Je suis relativement nouveau dans l'utilisation de git, mais j'aimerais utiliser ce projet comme model pour concevoir un autre projet dans lequel j'ai besoin de fonctionnalités similaires (possibilité de postr quelque chose, de laisser des commentaires dessus, etc.). Je souhaite également pouvoir transférer les modifications de mon nouveau projet dans l'ancien, si je trouve un bogue ou si je propose une nouvelle fonctionnalité commune que je souhaite repousser.

Quelle serait la bonne façon de gérer cette configuration dans git? Dois-je fourrer mon original ou le cloner et le pousser vers un nouveau référentiel puis append l'original comme une seconde télécommand, ou quelque chose d'autre entièrement?

Solutions Collecting From Web of "Comment gérer plusieurs projets basés sur le même model dans git?"

Le clonage est forking dans ce cas, donc il n'y a pas de différence. Dans les deux cas, vous obtenez l'historique, tout ce dont vous avez besoin (ou plutôt, ce que vous spécifiez / par défaut).

L'approche que vous avez mentionnée serait la solution, oui.

Vous pouvez ensuite append des modifications individuelles à votre repository initial pour y appliquer les modifications.

Je n'ai pas fait cela auparavant, mais j'ai été dans la situation de créer des templates pour les repositorys de contrôle de version. C'est comme ça que je ferais ce que tu veux.

  1. Créez une petite famille de templates en clonant. Faire le jeu en lecture seule de l'extérieur de la famille.
  2. Pour créer un nouveau projet, clonez à partir d'un model.
  3. Lorsque vous trouvez quelque chose que vous souhaitez append ou supprimer d'un model, modifiez une copy de travail du model et appuyez sur. Faites-le même si cela signifie faire le changement deux fois: une fois dans un projet, et une fois sur le model.
  4. Tirez des projets pour les mettre à niveau vers la dernière version de leur model.

Le dernier tirage est important car les gens n'apprécieront pas que leurs projets changent lorsque leurs templates changent. La mise à niveau devrait être volontaire et planifiée par l'équipe du projet.

Je n'utiliserais pas plusieurs télécommands pour cela.