2010-06-29 11 views
5

Così ho usato git per la prima volta, e c'è uno scenario che non so come risolvere.Gestione di un ramo di release in Git

Ho una semplice webapp (solo html, css e js) e voglio produrre versioni regolari che possono essere tracciate con un numero di versione. Questo è facile da fare con git tag. Ma il problema è che per i miei rilasci voglio fare alcune cose in più, come minimizzare gli script js e aggiornare le pagine html per puntare a loro. Inoltre, ho bisogno di un .gitattribute nel rilascio che ignori gli script js non minificati, in modo che git archive produca il più piccolo output possibile.

Quello che ho fatto è creare un ramo releases. Questo ramo include il già citato .gitattributes e le pagine html modificate. Ogni volta che voglio una nuova versione, passo a questo ramo, unisco le modifiche da master, quindi finisco la versione e le taggo con un numero di versione. Sembra funzionare come voglio, ma non sono sicuro di come dovrebbe essere fatto.

La mia domanda per gli utenti git più esperti è come viene gestito questo caso di solito?

+0

Non vedo se c'è un'alternativa. Devi _ minnificare i nuovi file js e css nel ramo di rilascio. –

risposta

3

La soluzione Branch è una buona, ma per la gestione del rilascio, si potrebbe anche semplicemente memorizzare un "rilascio" in un archivio esterno (come un Maven uno per esempio, o di un altro repo Git dichiarato come un modulo)

La cosa con la gestione dei rilasci è:

  • non hai bisogno di una storia dettagliata per ogni file (dal momento che tali file sono accumulo dai file sorgenti)
  • avete bisogno di quei file "rilascio" di essere " confezionato "come il js minified.

Per tali motivi (creazione e imballaggio), non è necessario mantenerli nello stesso repository rispetto a quello utilizzato per le origini (con la cronologia dettagliata e più diramazioni).
Semplicemente non produci versioni di versioni allo stesso ritmo di quelle per le fonti: il ciclo di vita dello sviluppo è molto diverso da quello di rilascio.

+0

è vero, anche se mi piace la comodità di avere accesso al codice che ha prodotto ogni versione. –