Ambiente di sviluppo per molti siti Web con Git

0

Ho 5 siti Web diversi che usano esattamente lo stesso codice, a parte una cartella di upload con contenuti diversi (immagini AKA che non sono coerenti attraverso ogni sito) e anche un file di configurazione che ha alcune impostazioni come se questo è un ambiente di produzione, quale database utilizzare ecc.

Il mio problema è che ho 5 diverse versioni del sistema di back-end che dovrebbero essere le stesse per ogni sito.

Quindi, cacci Git. Ho appena iniziato a imparare e ora capisco le basi e ho bisogno di scegliere un flusso di lavoro per il mio ambiente di sviluppo. Questo flusso di lavoro mi consentirà di passare rapidamente da un sito Web all'altro (con lo stesso back-end, immagini / file di configurazione diversi).

I miei pensieri su come ottenere questo

La mia idea è di avere un ramo per ciascuno dei diversi siti web. Sul ramo principale si trova il codice back-end e tutti i commit relativi al codice back-end. Quindi, crea 5 altri rami che contengono le cartelle dei caricamenti univoci e il file di configurazione per ciascun sito. Quindi, quando voglio visualizzare un sito diverso, ho solo git branch site3 e tutti i caricamenti caricati e il database corretto è selezionato ecc.

Questo suona come il giusto tipo di approccio? Sto cercando un flusso di lavoro di sviluppo affidabile che posso utilizzare per scalare fino a 50 siti che posso mantenere con facilità. L'idea è di far sì che tutti i siti provengano dallo stesso back-end, ma sono comunque visivamente diversi quando passo al ramo del sito pertinente (quindi ho una rappresentazione accurata di ciascun sito web).

    
posta jskidd3 11.09.2015 - 15:19
fonte

1 risposta

3

Sembra che tu stia cercando di ottenere la configurazione del sito nel tuo sistema di controllo della versione (git). Sembra una cattiva idea, specialmente se vuoi 1 ramo per configurazione.

Sarebbe meglio servire solo memorizzando il codice sorgente in git, e mantenere il resto come configurazione sul server, al di fuori di git. Sia come file di configurazione (credenziali del database), modelli specifici del sito, o dove possibile: nel database. Ogni aspetto e aspetto dovrebbero essere disaccoppiati dal codice e, laddove le cose differiscono per progetto, creare un gancio di personalizzazione nella configurazione.

In alternativa, se vuoi davvero questo in git, suggerirei di avere impostazioni per-site in directory / file separati, e usare un semplice link simbolico con il nome current per puntare alla specifica directory / file di configurazione.

Uno dei progetti a cui ho lavorato ha due rami separati per due layout specifici, e si è già trasformato in un incubo di manutenzione di alcuni mesi. Una cattiva idea.

    
risposta data 11.09.2015 - 17:58
fonte

Leggi altre domande sui tag