Con la crescita esponenziale di GitHub, ci sono moltissime realtà aziendali che si stanno muovendo sempre di più nell'adottare GitHub come "nuova casa" per gli sviluppatori, migrando da sistemi esistenti, potenzialmente basati su Jenkins, BitBucket, Azure DevOps e così via.
Per quanto riguarda il repository, vediamo com'è semplice fare una migrazione se questo è già basato su Git. In questo esempio, assumiamo che il repository esista in Azure DevOps, ma il principio sarà pressochè identico anche per qualsiasi altro remote.
git clone --bare https://${{ secrets.AZURE_DEVOPS_PAT }}@{organization}.visualstudio.com/{team-project}/_git/{repository}Il primo passaggio riguarda proprio il clone. E' fondamentale cercare di avere una copia quanto più fedele possibile di tutto quanto è stato pubblicato nel remote. Tuttavia, il comando di clone ha impostato il parametro bare, che in realtà non scarica alcun codice sorgente, ma rende la cartella dove stiamo andando ad effettuare il clone, essa stessa la directory .git in cui sono contenute tutte le informazioni sui branch, commit e così via.
A questo punto, se non l'abbiamo già fatto, possiamo creare un nuovo repository su GitHub utilizzando la CLI.
gh repo create {organization}/{repository} --privateE, solo infine, possiamo caricare il codice sorgente partendo dalla folder dove abbiamo fatto il clone.
git push --mirror https://${{ secrets.GITHUB_PAT }}@github.com/{organization}/{repository}.gitAnche in questo caso il comando è di push, come siamo già abituati a conoscere, con l'unica accortezza di passare il parametro mirror. Questo farà sì che non dovremo passare un branch specifico da caricare sulla nuova origin, ovvero GitHub, ma tutto ciò che sarà incluso nelle refs/ verrà caricato in automatico. Perciò, a migrazione fatta, ci ritroveremo non solo tutti i branch, ma anche tutti i tag, avendo una copia completa della history del repository di partenza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Impostare automaticamente l'altezza del font tramite CSS
Effettuare un clone parziale di un repository di GitHub
Ricerca delle GitHub issue tramite operatori logici
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
GitHub Copilot CLI in ambienti offline
Personalizzare le pagine di errore su Azure App Service
Ottimizzare gli indici con Automatic Index Compaction in Azure SQL Database
Esporre un server MCP con Azure API Management
Importare repository da Bitbucket a GitHub Enterprise Cloud
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot
Gestione dei codeowners in GitHub


