si poteva guardare il supporto di git per submodules. Dovresti aggiungere il secondo repository come sottomodulo al tuo progetto principale, ad es. con comandi come:
git submodule add git://wherever/blah.git library-code
git commit -m "Added a new submodule called 'library-code'"
Quando si modifica nel library-code
sottodirectory, è come se il repository genitore non esiste - è possibile modificare origin
di utilizzare un trasporto che si può spingere più e quindi spingere come se fosse completamente indipendente.
Per specificare che si desidera che il sottomodulo sia in una particolare versione, è necessario passare al sottomodulo e utilizzare git checkout
per passare alla versione corretta. Poi si torna fino al repository principale e lo stadio e si impegnano che la nuova versione modulo con:
git add library-code
git commit -m 'Change the submodule version'
L'albero della repository principale memorizza solo la versione che il modulo dovrebbe essere, in modo che quando si preme il repository principale , non sta spingendo nessuno dei file nel sottomodulo.
Al fine di scindere questa sottodirectory, mantenendo la cronologia, è necessario clonare il vostro repository e utente git filter-branch
originale di riscrivere la storia, come descritto in questa risposta:
Quindi è possibile inviarlo a un repository GitHub appena creato, tornare al progetto originale, rimuovere la sottodirectory e sostituirla con il sottomodulo come descritto sopra.
Se non hai molta familiarità con i concetti git, questo potrebbe essere difficile per te - ti consiglio di leggere prima i sottomoduli git.
fonte
2011-08-22 16:24:34
Ho già il codice nella mia sottodirectory, quindi voglio convertirli in git repo e inviarli a un nuovo repository remoto (ad es. Github). Puoi fare un esempio di farlo? Mi dispiace di essere così newbie in queste cose :) – yasar
Vuoi conservare la cronologia di tutto nella sottodirectory? –
E per quanto riguarda il sottomodulo quando spingo un repository più grande ad altri repo remoti? Questo include i file del submodule? – yasar