Come si esegue la migrazione di un progetto esistente in GitHub?

Completato

In questa unità verranno presentate le considerazioni importanti per la migrazione di un progetto in GitHub da un sistema di controllo della versione legacy.

Perché eseguire la migrazione in GitHub?

Esistono volumi di documentazione riguardo ai vantaggi di GitHub. La promozione del passaggio a GitHub esula dall'ambito di questo modulo, ma vengono riassunti alcuni dei principali vantaggi nel contesto degli argomenti che è necessario considerare durante la pianificazione della migrazione.

Controllo della versione

GitHub usa in modo esclusivo Git, probabilmente il miglior sistema di controllo della versione disponibile. Tuttavia, Git è incredibilmente sofisticato e può presentare alcuni scenari complessi per l'uso di codice con cui il team potrebbe non avere familiarità. I rami e le richieste pull costituiscono una parte fondamentale della vita quotidiana degli sviluppatori che usano Git e di conseguenza è necessario saper identificare quando e come usarli in modo efficace in GitHub. È opportuno che il team acquisisca familiarità con il flusso di GitHub, per poter iniziare in modo ottimale.

Mantenere il codice nel cloud

Gran parte del codice del progetto è ancora archiviato nei sistemi di controllo della versione legacy dietro ai firewall aziendali. Quando si esegue la migrazione in GitHub, si sposta il codice nella piattaforma cloud di GitHub, in cui i membri del team possono accedervi facilmente da qualsiasi posizione. Questa migrazione offre una buona opportunità di esaminare i criteri del team per i tipi di file e dati mantenuti nel controllo della versione. Come procedura consigliata, è necessario presupporre che tutti gli elementi di cui si esegue il commit in GitHub siano stati compromessi e di conseguenza evitare di includere dati sensibili, come chiavi API, password o altri file contenenti informazioni analoghe.

Nota

GitHub offre repository pubblici e privati, nonché controlli di accesso granulari per diverse parti di un repository. In questo modo è possibile controllare a chi sono visibili i progetti e quali azioni può eseguire un determinato utente.

Collaborazione

GitHub offre un supporto eccellente per la collaborazione tra team tramite funzionalità come problemi, richieste pull e revisioni del codice. Il flusso di GitHub, tuttavia, potrebbe essere diverso dalle procedure alle quali il team è attualmente abituato. È consigliabile considerare se il team si adatterà a GitHub e se conservare il processo specifico o se trovare una soluzione intermedia prima di completare la migrazione.

Se il progetto è un progetto open source che consente collaboratori esterni, non esiste una soluzione migliore di GitHub per massimizzare i vantaggi.

Migrazione in GitHub

Considerazioni sulla pianificazione

L'aspetto più importante da considerare prima di eseguire la migrazione in GitHub è se sia necessario mantenere altri elementi oltre lo stato corrente dell'origine. Se si ritiene appropriato avviare un nuovo progetto con l'origine corrente così com'è, l'opzione migliore consiste nel lavorare come se si creasse un nuovo progetto e caricare l'origine nel repository.

Se invece si vuole mantenere la cronologia del controllo della versione, è necessario eseguire l'importazione usando lo strumento GitHub Migrator. Per altre informazioni sul supporto dell'importazione per diverse piattaforme di controllo della versione, vedere Importazione di dati da sistemi di controllo della versione di terze parti.

Oltre ai dati Git, potrebbe anche essere necessario conservare problemi, richieste pull o altri dati. Il supporto per questi elementi varia in base alla piattaforma ed è generalmente disponibile con i progetti della community. Questo modulo non tratta la migrazione di dati non Git.

Gestione dei file binari attualmente archiviati nel progetto

Come procedura consigliata, i repository GitHub devono essere limitati ai file necessari per la compilazione di progetti. Evitare di eseguire il commit di file binari di grandi dimensioni, ad esempio artefatti della compilazione. I file binari, tra cui fogli di calcolo e presentazioni, sono più adatti per essere monitorati sui portali che sono in grado di renderli disponibili e controllarne la versione correttamente. Se è necessario controllare la versione di file binari di grandi dimensioni, provare a usare l'estensione Git LFS (archiviazione di file di grandi dimensioni).

Creazione di file di Git importanti, come un file con estensione .gitignore

Git supporta file con estensione .gitignore per consentire l'applicazione di criteri dei file di controllo della versione. Questi file definiscono i criteri di ricerca usati per escludere file e cartelle dal rilevamento del controllo del codice sorgente. Il semplice esempio seguente esclude in modo ricorsivo qualsiasi cartella denominata Bin o bin, nonché il relativo contenuto, dal rilevamento del controllo del codice sorgente:

[Bb]in/

Altre informazioni su come ignorare file. Si può vedere anche la raccolta di file .gitignore iniziali offerti per diverse piattaforme nel repository gitignore.

Sono disponibili molti altri file comunemente usati nei progetti GitHub per spiegare i diversi criteri a utenti e collaboratori del repository. Anche se il progetto è privato e limitato a un numero ridotto di destinatari, può comunque essere utile esprimere in modo esplicito questi criteri. Anche se nessuno di questi file è necessario, di seguito ne sono elencati alcuni dei più comuni.

file Scopo
README.md Pagina di destinazione per la directory. Il rendering di questa pagina viene eseguito quando in GitHub viene visualizzata la relativa directory.
LICENSE.md La licenza con cui viene fornito il codice.
CONTRIBUTING.md Descrive in che modo gli utenti devono contribuire al progetto, ad esempio le aspettative riguardo alle richieste pull.
SECURITY.md Descrive i criteri di sicurezza per il progetto e fornisce linee guida agli utenti che vogliono inviare codice sensibile correlato alla sicurezza o feedback che non deve essere rivelato pubblicamente prima della risoluzione delle questioni sollevate.

Altre informazioni sulla configurazione del progetto per contributi validi.

Importazione del progetto in GitHub

Dopo aver preparato il repository per la migrazione, passare alla scheda Code (Codice) del repository GitHub. Usare l'opzione Import code (Importa codice) per specificare il repository di origine.

Screenshot of importing code to a GitHub repository.

Lo strumento GitHub Migrator eseguirà tutte le altre operazioni necessarie.

Screenshot of the GitHub Migrator tool.