Spesso, quando crei un nuovo progetto, non lo fai da zero. Il riutilizzo della struttura del codice, del boilerplate e di altre funzionalità esistenti può farti risparmiare ore di tempo di sviluppo eseguendo configurazioni ripetute. Questa funzione è integrata direttamente in GitHub, il che rende i modelli facili da usare e gestire.
Modelli di repository: la migliore funzionalità nascosta di GitHub I modelli GitHub sono incredibilmente utili per avviare nuovi progetti, soprattutto se crei costantemente nuovi repository utilizzando lo stesso linguaggio, framework e struttura del progetto.
Ad esempio, qualcuno che crea mod o plug-in di Minecraft per il software esistente utilizzerà ogni volta lo stesso identico progetto Java e Gradle e potrebbe creare dozzine di plug-in. Qualcuno che lavora molto con le API Web ASP.NET potrebbe creare un nuovo progetto per ogni progetto che richiede un back-end.
L’utilizzo dello stesso modello velocizza notevolmente lo sviluppo e può anche essere utilizzato per archiviare il codice condiviso per i progetti. Ad esempio, supponi di avere una piccola classe “CodeUtilities” nella tua base di codice che contiene del codice comunemente riutilizzato. Memorizzarlo sul modello come copia definitiva di questo file avrebbe senso se viene riutilizzato spesso.
I modelli possono anche essere resi pubblici su GitHub, anche se sorprendentemente non sono così comunemente usati. Potresti anche non sapere che esiste se non ti sei imbattuto in un repository che non ha il pulsante “Usa questo modello” che ti consente di creare un nuovo repository da esso:
L’uso del modello è semplice: devi solo dare al tuo repository un nuovo nome e selezionare pubblico o privato. Tuttavia, c’è anche l’opzione di “includere tutti i rami”, che copia tutto, non solo il ramo principale. Questo è disattivato per impostazione predefinita, quindi assicurati di attivarlo se ne hai bisogno.
Puoi anche accedere a tutti i modelli che hai aggiunto a Speciali (o che possiedi) durante la creazione di un nuovo repository:
Naturalmente, puoi sempre clonare manualmente un repository, rimuovere il codice che non ti serve, creare un nuovo repository GitHub per il nuovo progetto e aggiornare il telecomando Git al nuovo repository. Ma i modelli GitHub automatizzano tutto ciò con un solo clic e sono davvero semplici da creare.
Creazione di un modello di repository La creazione di un modello da un repository esistente è piuttosto semplice. L’opzione non è disponibile quando la crei per la prima volta, ma può essere attivata e disattivata a piacere.
Vai alle impostazioni del tuo repository e, nella scheda “Generale”, fai clic sulla casella di controllo “Repository modello”:
Questo è tutto. Il tuo repository è ora in modalità modello. Vedrai il pulsante verde “Codice” cambiare nel pulsante “Usa questo modello”, anche se il pulsante del codice è ancora lì se vuoi clonarlo manualmente.
Ovviamente, se lo stai creando da un repository esistente con molte funzionalità, potresti invece voler creare una nuova “copia del modello”. Quindi puoi rimuovere tutta la logica aziendale indesiderata e mantenere solo la base di codice essenziale.
Aggiornamento dei modelli Dopo aver creato un repository utilizzando un modello, verrà disconnesso da quel modello e connesso al nuovo repository. Tuttavia, ci sono alcuni vantaggi nell’aggiungere l’URL del modello come remoto secondario e utilizzando il tuo progetto con più repository remoti.
Se invii una modifica al modello, non raggiungerà tutti i cloni di quel modello. Puoi aggiornare manualmente i cloni aggiungendo il modello come telecomando e tirando il modello remoto.
git remote add template [template_url] Quindi, recupera tutte le modifiche per acquisire le modifiche remote dal modello:
git fetch –all Quindi, puoi usare git merge con il –allow-unrelated-histories flag per inserire le modifiche dal ramo principale sul modello:
git merge template/main –allow-unrelated-histories Tieni presente, tuttavia, che se il tuo progetto clonato si discosta troppo dal modello, potresti incorrere in conflitti di unione, nello stesso modo in cui anche l’unione delle modifiche a monte può causare problemi. Dovrai risolverli manualmente.