Migrazione da Bitbucket a GitHub
Quando si tratta di Bitbucket e GitHub, ognuno offre i propri vantaggi e svantaggi. Li ho usati entrambi e mi piacciono ciascuno per motivi diversi.
Ma preferisco GitHub per alcuni motivi in più rispetto a Bitbucket (l’ultimo dei quali non è che la mia organizzazione fosse ospitata lì). E mi piace avere tutto, più o meno, sotto lo stesso servizio.
Ho passato un po’ di tempo nell’ultima settimana a migrare da Bitbucket a GitHub. Attualmente ho due account personali:
- uno per me,
- uno per Pressware.
Ho scelto di eseguire il downgrade dell’account della mia organizzazione a un account personale per risparmiare denaro e perché sono più o meno un’azienda di uno che occasionalmente ha collaboratori.
Varie guide online lasciano un po’ a desiderare quando si tratta di spiegare come migrare da Bitbucket a Github, quindi ho pensato di condividere la mia esperienza per farlo.
Migrazione da Bitbucket a GitHub
Innanzitutto, scrivendo questo, presumo che tu voglia mantenere due account personali ognuno dei quali ha il proprio account GitHub e quindi il proprio indirizzo email.
Se questo è il caso, allora questo dovrebbe fornirti tutto ciò di cui hai bisogno. Suppongo anche che tu abbia due account impostati: niente moe (ovvero nessuna chiave SSH o qualcosa del genere).
Nei miei esempi, sto usando pressware come nome utente. Dovrai sostituirlo con quello che ti piace.
Detto questo, ecco cosa devi fare.
1 Genera una chiave SSH
Innanzitutto, dovrai generare una chiave SSH. A seconda del tipo di lavoro che svolgi, potresti voler fare attenzione con questo. Cioè, se hai un file id_rsa esistente, non sovrascriverlo. Invece, ne creeremo un secondo.
Per fare ciò, apri un terminale e inserisci quanto segue sostituendo l’indirizzo email specificato con l’indirizzo email del secondo account che hai creato (nel mio caso, questo è il mio account pressware anziché il mio account tommcfarlin ).
$ ssh-keygen -t rsa -b 4096 -C "email@pressware.co"
Quando ti chiede il nome del file che vuoi usare, mettilo suffisso con il nome utente (o chiamalo come preferisci – mi capita di essere un fan di farlo in questo modo).
Nel mio caso, sto salvando il file in id_rsa_pressware
. Quindi, specifica la passphrase che desideri.
2 Aggiungi la chiave al tuo agente locale
Successivamente, dovrai aggiungere la chiave al tuo agente SSH. Tutto ciò è necessario per poter comunicare con l’account GitHub corretto quando arriva il momento di iniziare la migrazione da Bitbucket a GitHub.
Per fare ciò, inserisci il seguente comando nel tuo terminale:
Questo avvierà il programma ssh-agent come processo in background. Successivamente, inserisci il comando successivo:
$ ssh-add -K ~/.ssh/id_rsa_pressware
Questo aggiungerà la chiave privata SSH e memorizzerà la passphrase nel portachiavi del tuo sistema operativo.
3 Aggiungi la chiave SSH a GitHub
Successivamente, accedi all’account GitHub a cui eseguirai la migrazione dei repository. Nell’account, fai clic sull’icona del tuo profilo, quindi fai clic sulla voce di menu Impostazioni.
Da lì, scegli l’opzione per le chiavi SSH e GPG. Successivamente, copia il contenuto della chiave appena creata negli appunti. Puoi farlo nel terminale con il seguente comando :
Quindi, fai clic sul pulsante Nuova chiave SSH e, nella pagina seguente, dai alla chiave il nome che desideri e incolla il contenuto che è stato appena copiato sulla tastiera.
4 Migra i tuoi repository
Per mantenere le cose succinte, mostrerò come copiare un singolo repository da. Bitbucket ma dovrai farlo per tutti i repository che devi migrare.
Innanzitutto, su GitHub, crea un repository vuoto con lo stesso nome di quello che intendi migrare. Nell’esempio seguente, userò semplicemente acme-repository.
Quindi, inserisci il seguente comando nel tuo terminale:
$ git clone --mirror https://bitbucket.org/tommcfarlin/acme-repository.git
Questo clonerà un mirror del repository acme sul tuo desktop. Successivamente, naviga all’interno della directory (immettendo cd acme-repository.git
).
Quindi, inserisci questo comando nel tuo terminale:
$ git remote set-url --push origin git@github.com:pressware/acme-repository.git
Questo imposterà un nuovo URL remoto upstream a cui devono essere inviati tutti i contenuti del repository.
Dopo averlo fatto, si tratta di spingere il contenuto del repository:
A seconda delle dimensioni del repository, l’operazione potrebbe richiedere un po’ di tempo, ma il lavoro è terminato.
E questo è tutto
Sarebbe facile dire "tutto qui!" ma è un po’ dispendioso in termini di tempo se si dispone di più repository, non si ha familiarità con SSH o si è nuovi a tutto questo.
Ma una volta che tutto è impostato e organizzato, è molto più bello avere tutto sullo stesso servizio, anche se separato dagli account.
Infine, al momento della stesura di questo articolo, è così che stavo migrando da Bitbucket a GitHub. Come altri post e articoli online, questo potrebbe facilmente essere obsoleto nel giro di pochi mesi.