Migrare un repository git da Azure DevOps a GitHub

di Matteo Tumiati, in DevOps,

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} --private

E, 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}.git

Anche 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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi