2010-04-03 17 views
6

Ho due diversi progetti .Net, ospitati su github.Condivisione di codice tra due diversi progetti git

Vorrei creare una libreria "comune" condivisa per i due progetti.

Come dovrei strutturare il mio repository per facilitare questa condivisione?

Idealmente, un cambiamento in questa libreria comune in un progetto potrebbe facilmente essere trasferito nell'altro progetto. Preferisco mantenere il codice stesso modificabile dai due progetti (all'interno di Visual Studio) e non includerlo come libreria. Ci sono le migliori pratiche per questo?

risposta

6

È possibile utilizzare i moduli di Git: https://git-scm.com/book/en/v2/Git-Tools-Submodules

+0

Si esegue 'git submodule add path-to-shared-repository' in ogni repository. Verrà creata una sottodirectory con il nome del repository condiviso. Questa domanda è pertinente qui: http://stackoverflow.com/questions/1462754/what-is-the-advantage-of-using-git-submodules-over-having-a-repo-inside-another –

+1

Questo è così strano . Volevo solo correggere un collegamento interrotto. Non potevo farlo perché era troppo piccolo, non chiedermi il perché. Non sapevo cosa aggiungere, perché non conoscevo i sottomoduli. Così, ho aggiunto una frase, in modo che potessi risolvere quel collegamento interrotto. È stato accettato Più tardi, quando ho provato a sostituire quella frase inutile con qualcosa di più utile, è stata respinta. Quindi, siamo rimasti con quella frase inutile. –

0

Git sottomoduli non è probabilmente la vostra risposta. Vedi questo blogpost che contiene ulteriori dettagli: http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/

+0

Per quanto riguarda git-sottostruttura (dal tuo riferimento): Lo svantaggio è che tutti i file del sottoprogetto sono presenti nel repository principale, il che significa che stai rinunciando a una parte del motivo per la suddivisione originaria dei repository del tuo progetto: avere un repository canonico per un determinato set di codice condiviso. Se qualcuno apporta una modifica a un sottoprogetto, può unirlo con altre modifiche localmente, ma dovrebbero dividere esplicitamente tale modifica indietro dal loro progetto se volessero condividerla con i progetti. –

+0

Tuttavia, sono d'accordo sul fatto che alcune altre opzioni https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/ siano forse migliori. –

Problemi correlati