Gestione di più versioni di un'applicazione Web utilizzando Git

12

Abbiamo una famiglia di app, tutte con la stessa base. Fino ad ora ho sviluppato questa base e il flusso di lavoro Git era molto semplice:

  • Lo sviluppo avviene in develop ramo
  • Le nuove funzionalità sono sviluppate in name-of-the-feature branch
  • I rilasci sono realizzati in release-** branch

Fino ad ora, il codice era lo stesso per ogni app della famiglia. Diciamo che la base che condividono ora è completa, e d'ora in poi il codice sarà diverso per ogni app.

Non sono sicuro di come dovrei affrontare git e questa app multiple che hanno la stessa base.

  • Ognuno di loro dovrebbe avere il proprio proprio progetto git ?
  • Dovrebbero essere sullo stesso progetto, ma ognuno nel proprio proprio ramo ?

Il punto è: se li metto su progetti separati, ogni modifica effettuata nella base dell'app dovrà ripetermi in ognuna delle app. Non ho molta familiarità con git , ma se memorizzo ciascun progetto in un ramo , sarà possibile unire la modifica di base con ciascuna app?

Qualcuno ha vissuto una situazione come questa? Non sono sicuro di come procedere.

Grazie!

A CURA Quando ho detto versione non intendevo i numeri di versione. Sono in realtà diverse app che condividono la stessa base.

    
posta João Daniel 10.02.2012 - 14:23
fonte

2 risposte

7

Lascia l'app di base nel proprio repository e crea nuovi progetti che dipendono dal jar che compilerai da quel repository.

Le filiali Git non sono per più app. Git preferisce che tu usi un repository per ogni progetto o una famiglia di progetti correlati. I rami ci sono in modo che tu possa sviluppare funzionalità in modo isolato, non così puoi creare un progetto completamente nuovo senza lasciare il repository.

Non vuoi avere più app che condividono il codice - questo è un incubo di manutenzione. Se come suggerisci di sviluppare ciascuno come un ramo nel repository centrale, avrai un lotto di fusione in corso per propagare le modifiche a ciascuna app. È molto più semplice dipendere da una singola libreria separata e utilizzare qualcosa come Apache Maven per accedere alle dipendenze del progetto.

    
risposta data 10.02.2012 - 16:58
fonte
6

Se le app non modificano la base stessa, considera di lasciare la base nel proprio repository. Quindi crea un nuovo repository per ciascuna singola app e aggiungi la base come sottomodulo git .

    
risposta data 10.02.2012 - 15:08
fonte

Leggi altre domande sui tag