Condividi

In SVN, gli sviluppatori condividono i contributi trasferendo le modifiche da una copia funzionante sul computer locale a un repository centrale. Quindi, altri sviluppatori trasferiscono questi aggiornamenti dal repository centrale nelle proprie copie di lavoro locali.

Il flusso di lavoro collaborativo di Git è molto diverso. Invece di distinguere tra copie di lavoro e repository centrale, Git fornisce a ogni sviluppatore la propria copia locale dell'intero repository. Le modifiche vengono trasferite in questo repository locale anziché in uno centrale. Per condividere gli aggiornamenti con altri sviluppatori, devi eseguire il push di queste modifiche locali a un repository Git pubblico su un server. Quindi, gli altri sviluppatori possono inserire i tuoi nuovi commit dal repository pubblico nei propri repository locali.

Migrazione Git: sviluppo SVN centralizzato e sviluppo Git distribuito a confronto

Dare a ogni sviluppatore il proprio repository completo è la base del controllo delle versioni distribuite e apre una vasta gamma di potenziali flussi di lavoro. Puoi leggere di più su questi flussi di lavoro nella nostra sezione Flussi di lavoro Git.

Finora hai lavorato solo con un repository Git locale. Questa pagina spiega come eseguire il push di questo repository locale a un repository pubblico ospitato su Bitbucket. La condivisione del repository Git durante la migrazione consente al tuo team di sperimentare i comandi Git senza influire sul loro sviluppo SVN attivo. Finché non sarai pronto per effettuare il passaggio, è molto importante trattare i repository Git condivisi come di sola lettura. Tutto lo sviluppo dovrebbe continuare a essere salvato nel repository SVN originale.

Creazione di un account Bitbucket

Se non hai già un account Bitbucket, dovrai crearne uno. L'hosting è gratuito per un massimo di 5 utenti, quindi puoi iniziare subito a sperimentare nuovi flussi di lavoro Git.

Creare un repository Bitbucket

Successivamente, dovrai creare un repository Bitbucket. Bitbucket semplifica molto l'amministrazione dei tuoi repository ospitati tramite un'interfaccia web. Tutto quello che devi fare è fare clic sul pulsante Crea repository dopo aver effettuato l'accesso.

Crea un repository all'interno di Bitbucket

Nel modulo risultante, aggiungi un nome e una descrizione per il tuo repository. Se il tuo progetto è privato, mantieni selezionata l'opzione del livello di accesso in modo che solo gli sviluppatori designati possano clonarlo. Per il campo Fork, usa Consenti solo fork privati. Usa Git come tipo di archivio, seleziona gli strumenti di gestione dei progetti che desideri utilizzare e seleziona il linguaggio di programmazione principale del tuo progetto nel campo Linguaggio.

Crea campi del repository all'interno di Bitbucket

Per creare il repository ospitato, invia il modulo facendo clic sul pulsante Crea repository. Dopo aver impostato il tuo repository, vedrai la pagina Prossimi passaggi che descrive alcuni comandi utili per importare un progetto esistente. Il resto di questa pagina ti guiderà passo dopo passo attraverso queste istruzioni.

Aggiungere un remoto di origine

Per semplificare il push dei commit dal tuo repository Git locale al repository Bitbucket che hai appena creato, dovresti registrare l'URL del repository Bitbucket in un remoto. Un remoto è semplicemente una comoda scorciatoia per un URL. Tecnicamente, puoi usare tutto ciò che desideri per la scorciatoia, ma se il repository remoto funge da base di codice ufficiale per il progetto, viene convenzionalmente chiamato origine. Esegui quanto segue nel tuo repository Git locale per aggiungere il tuo nuovo repository Bitbucket come remoto di origine.

git remote add origin https://<username>@bitbucket.org/<workspace-id>/<repo>.git

Assicurati di modificare <username> con il tuo nome utente Bitbucket, <workspace-id> con l'ID del tuo spazio di lavoro e <repo> con il nome del repository Bitbucket. Dovresti anche essere in grado di copiare e incollare l'URL completo dall'interfaccia web di Bitbucket.

Migrazione Git: aggiungere un remoto di origine

Dopo aver eseguito il comando precedente, puoi usare origin in altri comandi Git per fare riferimento al tuo repository Bitbucket.

Eseguire il push del repository locale su Bitbucket

Successivamente, devi popolare il tuo repository Bitbucket con i contenuti del tuo repository Git locale. Questa operazione si chiama «push» e può essere eseguita con il seguente comando:

git push -u origin --all

L'opzione -u dice a Git di tenere traccia dei branch upstream. Ciò consente a Git di avvisarti se la cronologia dei commit del repository remoto è precedente o in ritardo rispetto a quella locale. L'opzione --all esegue il push di tutti i branch locali al repository remoto.

Devi anche eseguire il push dei tuoi tag locali al repository Bitbucket con l'opzione --tags:

git push --tags
Migrazione Git: eseguire il push al repository Bitbucket

Il tuo repository Bitbucket ora è essenzialmente un clone del tuo repository locale. Nell'interfaccia web di Bitbucket, dovresti essere in grado di esplorare l'intera cronologia dei commit di tutti i tuoi branch.

Condividere il repository con il tuo team

Tutto quello che devi fare ora è condividere l'URL del tuo repository Bitbucket con qualsiasi altro sviluppatore che abbia bisogno di accedere al repository. L'URL di qualsiasi repository Git può essere copiato e incollato dalla home page del repository su Bitbucket:

Condividi l'URL del repository

Se il tuo repository è privato, dovrai anche concedere l'accesso ai membri del tuo team nella scheda Amministrazione dell'interfaccia web di Bitbucket. Gli utenti e i gruppi possono essere gestiti facendo clic sul link Gestione accessi nella barra laterale sinistra.

Migrazione Git: gestione degli accessi dei repository Git

In alternativa, puoi utilizzare la funzione di invito integrata di Bitbucket per invitare altri sviluppatori a eseguire un fork del repository. Gli utenti invitati avranno automaticamente accesso al repository, quindi non dovrai preoccuparti di concedere le autorizzazioni.

Una volta ottenuto l'URL del tuo repository, un altro sviluppatore può copiare il repository sul proprio computer locale con git clone e iniziare a lavorare al progetto. Ad esempio, dopo aver eseguito il seguente comando sul proprio computer locale, un altro sviluppatore troverebbe un nuovo repository Git contenente il progetto nella directory  <repo>.

git clone https://<username>@bitbucket.org/<workspace-id>/<repo>.git

Continuare a eseguire il commit con SVN, non Git

Ora dovresti essere in grado di eseguire il push del tuo progetto locale su un repository remoto e il tuo team dovrebbe essere in grado di utilizzare quel repository remoto per clonare il progetto sui propri computer locali. Questi sono tutti gli strumenti necessari per iniziare a collaborare con Git. Tuttavia, tu e il tuo team dovreste continuare ad apportare modifiche utilizzando SVN fino a quando tutti non saranno pronti a effettuare il passaggio.

Le uniche modifiche al repository Git dovrebbero provenire dall'archivio SVN originale utilizzando il processo di sincronizzazione discusso nella pagina precedente. A tutti gli effetti, ciò significa che tutti i tuoi repository Git (sia locali che remoti) sono di sola lettura. I tuoi sviluppatori possono sperimentarli e tu puoi iniziare a integrarli nel tuo processo di build, ma dovresti evitare di apportare modifiche permanenti usando Git.

Migrazione Git: solo le modifiche al repository Git dovrebbero provenire dal repository SVN originale

Riepilogo

In questa fase, configurerai un repository Bitbucket per condividere il tuo repository Git convertito con altri sviluppatori. Ora dovresti avere tutti gli strumenti necessari per implementare uno qualsiasi dei flussi di lavoro git descritti in Flussi di lavoro Git. Puoi continuare a sincronizzarti con il repository SVN e condividere i commit Git risultanti tramite Bitbucket per tutto il tempo necessario a far sì che il tuo team di sviluppo si senta a proprio agio con Git. Quindi, potrai completare il processo di migrazione ritirando il tuo repository SVN.

Consigliata per te

Blog di Bitbucket

Percorso di apprendimento DevOps

Scopri di più su Git

Trova altre guide e risorse su Git in questo hub.