
I sottomoduli Git sono un modo per includere un repository Git come sottodirectory di un altro deposito. Questo tipo di nidificazione del codice sorgente può essere molto utile per i progetti che desiderano un controllo più preciso sulle proprie dipendenze e sul processo di compilazione, ed è facile da configurare.
Perché usare i sottomoduli?
Quando aggiungi un sottomodulo a un repository Git, stai essenzialmente creando un collegamento tra i due repository. Il repository principale e il repository del sottomodulo possono essere aggiornati indipendentemente l'uno dall'altro. Il repository principale conterrà un URL remoto e un riferimento all'ID commit estratto nella cronologia del sottomodulo. Quando cloni il repository principale, clonerà anche i sottomoduli.
Questo può essere utile se hai un progetto che dipende dal codice di un altro progetto e vuoi mantenere separati i due progetti (e le relative cronologie delle versioni), ma essere comunque in grado di lavorare facilmente con entrambi.
< p> L'alternativa principale ai sottomoduli è l'utilizzo di gestori di pacchetti come NPM, NuGet o Maven. I gestori di pacchetti forniscono un repository centralizzato di pacchetti e librerie che possono essere facilmente installati e aggiornati. Tuttavia, devi pubblicare una versione specifica di ciascun pacchetto che desideri utilizzare. E se il tuo codice è privato, devi usare il tuo registro privato dei pacchetti.
I sottomoduli Git ti consentono di gestire le dipendenze più da vicino rispetto alla maggior parte dei gestori di pacchetti. Con i sottomoduli, puoi scegliere esattamente quali versioni di ogni dipendenza vuoi includere nel tuo progetto, ed è più facile aggiornare l'ID commit del sottomodulo piuttosto che pubblicare un nuovo pacchetto.
I sottomoduli semplificano inoltre la manutenzione e l'utilizzo di fork di librerie comuni, che è qualcosa che molte aziende scelgono quando sono necessarie funzionalità aggiuntive o personalizzazioni. In definitiva, se stai gestendo un repository per il modulo e hai bisogno di un controllo granulare sulle tue dipendenze, potresti prendere in considerazione l'utilizzo di sottomoduli invece di gestori di pacchetti.
Come usare i sottomoduli di Git
Se stai clonando un repository che usa già i sottomoduli, la maggior parte del lavoro è già stato fatto per te. Il tuo client git dovrebbe clonare e scaricare automaticamente il repository del sottomodulo e dovrebbe aggiornarsi ogni volta che altri manutentori inviano modifiche al sottomodulo.
In caso contrario, potrebbe essere necessario eseguire git clone con il flag –recursive, che analizzerà e aggiornerà tutti i sottomoduli.
git clone –recurse-submodules URL
L'aggiunta di un nuovo sottomodulo è abbastanza semplice. Se stai aggiungendo un sottomodulo nuovo di zecca da un repository di origine, dovrai solo eseguire git submodule add:
git submodule add URL submodule_directory
Questo scaricherà il repository del sottomodulo dall'URL e clonarlo nella cartella submodule_directory.
Tuttavia, se desideri convertire una cartella esistente, il processo è un po' più complicato. Puoi leggere la nostra guida per convertire una directory in un sottomodulo qui, ma il processo prevede la clonazione del repository principale, il filtraggio della cronologia dei commit per includere solo la directory del modulo e quindi il push del sottomodulo in un nuovo repository.
< p>Una volta aggiunto il sottomodulo, sarà necessario eseguire il commit delle modifiche nel repository principale. Questo aggiornerà la configurazione per tutti gli altri che estraggono il repository principale.
git commit -m “Aggiunto submodule submodule_directory”
Aggiornamento dei sottomoduli Git
Se qualcun altro ha aggiornato il sottomodulo o hai bisogno di estrarre gli aggiornamenti dal sottomodulo& #8217;s repository, ti consigliamo di utilizzare git submodule update:
git submodule update –remote
Tuttavia, se devi apportare modifiche da solo, diventa un po' più complicato. Apportare modifiche al codice nei sottomoduli Git richiede un po' di attenzione in più rispetto all'aggiornamento del codice in un normale repository Git e in genere hai due opzioni:
- Apporta le modifiche in un repository separato per il sottomodulo , eseguirne il commit e aggiornarli normalmente. Dovrai eseguire git submodule update nel repository principale per estrarre le nuove modifiche.
- Apporta le modifiche all'interno del repository principale. Poiché un sottomodulo è fondamentalmente un repository Git incorporato, puoi accedere alla directory del sottomodulo ed eseguire i comandi Git normalmente. Questo è uno dei principali vantaggi dei sottomoduli, poiché puoi mantenere repository separati mentre lavori su entrambi contemporaneamente.
Se stai apportando modifiche all'interno del repository principale,& #8217;dovrò cd nel sottomodulo e aggiornare:
cd submodule_dir git commit -am “submodule commit” git push
Quindi, torna al repository principale e invia gli aggiornamenti al sottomodulo al repository principale:
cd .. git commit -am “updated submodule” git push
Dovresti vedere i cambiamenti sia nel repository Github del sottomodulo che nel repository principale.
p> LEGGI SUCCESSIVO
- › Il trackpad del Mac non funziona? 10 consigli e trucchi da provare
- › VMware porta Windows 11 con accelerazione 3D sui Mac Apple Silicon
- › Come silenziare le chiamate da numeri sconosciuti su WhatsApp
- › Le batterie rimovibili per smartphone potrebbero tornare alla ribalta
- › È sicuro acquistare chiavi Windows 10 economiche/gratuite da terze parti?
- › Come utilizzare e personalizzare la tastiera virtuale sul tuo deck di Steam