Sto cercando di capire il miglior uso di Git per il mio team di sviluppo. Lavoriamo su più progetti C che condividono alcuni moduli comuni , ognuno dei quali varia un po 'in ogni progetto . Un modulo può essere un driver hardware, un driver del sensore che utilizza un driver hardware, una libreria di algoritmi, un'attività che utilizza una libreria con un modulo sensore, ecc.
Ciò significa che se un modulo è sia in projectA che in projectB, uno sviluppatore di projectA potrebbe voler cambiare una parte di codice in questo modulo, per proporre questa modifica al proprietario della libreria che lo accetterà, senza che cambi direttamente lo stato del modulo in projectB. Quindi, lo sviluppatore di projectB potrebbe volere o non volere aggiornare il suo modulo, oltre a modificarlo un po 'per soddisfare le sue esigenze.
Ho già letto questo Q / A ma non sono sicuro che sia lo stesso scenario, penso che in questo Q / A l'autore non voglia modificare il modulo in projectA o projectB. Un'altra differenza con questo Q / A è che preferirei davvero se questo fosse possibile pur avendo tutti i miei moduli nello stesso repository (ma i progetti in repository diversi). Questo perché stiamo lavorando su progetti embedded così le nostre librerie non possono essere veramente indipendenti, sono organizzate per livelli. Sarebbe strano per noi avere un repository per modulo software (sensore, sensore, algoritmo, algoritmo, compito, compito, modulo hardware, modulo hardware, ecc.).
Ho letto anche questo Q / A ma non sono sicuro che l'aggiunta di tutti i moduli in un sottomodulo consenta a uno sviluppatore del progetto di gestire ciascun modulo in modo indipendente.
Sarebbe possibile lavorare in questo modo con un unico repository di libreria / moduli e repository di progetti? Se sì, come dovremmo lavorare? Possiamo considerare i progetti come fork del repository principale dei moduli di raccolta o usarlo come sottomodulo?