Come organizzare un progetto basato su framework in Git

6

Ok, quindi ho quella che sembra una situazione complessa e mi chiedo come organizzarla al meglio. Ho un'esperienza limitata con Git quindi potrei mancare il sistema.

Ho un framework sviluppato internamente. Questo framework viene utilizzato il mio ProjectX, ProjectY e ProjectZ. Se aggiorno i componenti principali del framework (Situato in / core e / risorse) lo voglio aggiornato per tutti i miei progetti. Tuttavia, voglio essere in grado di aggiornare i componenti personalizzati di ciascun progetto e avere quello tracciato in Git (tutti i contenuti personalizzati si trovano in / app).

Quindi penso al nostro server centrale che dovremmo avere un repository Git solo per il core framework. Questo conterrà quanto segue:

core/*
resources/*
.htaccess
index.php

Quindi ciascuno dei nostri progetti avrà il proprio repository sul server contenente l'app / cartella.

Funzionerebbe comunque con Git localmente? Possiamo tirare il contenuto di due repository in una cartella? Potremmo avere /home/brandon/projects/ProjectX .

Sto solo cercando informazioni su come organizzarlo. Inoltre, come potremmo spingere agli ambienti live / test? SSHing nell'ambiente di produzione e l'estrazione dal repository centrale sarebbe la strada da percorrere?

    
posta Brandon Wamboldt 09.03.2012 - 21:32
fonte

2 risposte

5

Sembra che i git submodules siano esattamente ciò che stai cercando.

Metti il tuo framework in un repository. E ogni progetto separato nel proprio repository. Quindi includi il framework come sottomodulo nei repository di progetto:

git submodule add <clone path to framework repo>
    
risposta data 10.03.2012 - 12:19
fonte
1

L'inclusione del framework può essere parte della build piuttosto che parte del repository. Quando costruisci l'app, i file framework vengono copiati nella tua copia di lavoro locale, in modo che tutto ciò che dipende dal framework funzioni. Aggiungi le cartelle framework al tuo file .gitignore in modo che non vengano incluse nel repository specifico del progetto.

Per le modifiche al framework, usa un repository separato che include le cartelle framework e una semplice app di test in modo che tu possa vedere le modifiche mentre lavori su di esse.

Ignorare i file framework nel repository del progetto è facoltativo, ma se li includi nel progetto, devi essere un po 'più attento a non apportare modifiche al framework direttamente nel progetto.

Hai anche la possibilità di utilizzare i sottomoduli, ma funziona meglio se il framework è una sottocartella del progetto piuttosto che il contrario.

    
risposta data 10.03.2012 - 01:15
fonte

Leggi altre domande sui tag