Suggerimenti che devi sapere prima di scegliere tra GitHub Flow o Git Flow

28 ottobre 2019 2,982 letture

Damilola Ale Hacker Noon foto profilo

@CodenlynDamilola Ale

Icona social diLinkedInIcona social di FacebookIcona social di TwitterIcona social di Github

Il controllo delle versioni è diventato una parte importante del processo di sviluppo del software. Il controllo delle versioni aiuta a registrare i cambiamenti di un progetto nel tempo in modo da poter richiamare versioni specifiche in seguito. Parlerò di GitHub.

Quando ho iniziato come sviluppatore, ho iniziato ad usare GitHub perché tutti dicevano che è necessario per gli sviluppatori avere il loro codice online. Con questo in mente, l’ho visto come un posto per memorizzare tutti i miei progetti in caso di crash del mio sistema, sarei stato in grado di scaricarli di nuovo.

Divertente vero?

Poi ho capito che GitHub era più di questo, è un posto dove potevo vedere tutti i progressi che avevo fatto in ogni fase della costruzione del mio progetto o software. Si dà anche il caso che sia un posto dove chiunque in tutto il mondo può contribuire ai progetti con idee diverse.

A metà anno circa, ho iniziato a Microverse, sono stato introdotto a GitHub Flow. GitHub Flow ti incoraggia a creare delle feature-branch per ogni caratteristica del tuo software. Quando credi che il tuo software o progetto sia pronto per essere visto o usato, crei una richiesta di pull e ti unisci al ramo master.

Fico vero?

clone the project

nel tuo repository locale.

cd

nel repository

controlla il ramo in cui ti trovi attualmente

.

Crea un nuovo

feature branch

Inizia a lavorare sulla tua caratteristica e quando hai finito

add

,

commit

e

push

al ramo feature

Vai al tuo repository remoto su GitHub e crea una richiesta pull e fai un merge quando credi che la caratteristica sia completata

In questo modo puoi vedere tutte le caratteristiche che hai creato e cosa hai aggiunto in ogni fase. Man mano che progredivo, ho capito che il ramo master era principalmente per la produzione e nel momento in cui unisci una richiesta di pull stai dicendo che quella caratteristica è pronta per essere usata o vista da tutti.

E’ stato allora che sono venuto a conoscenza che GitHub flow funziona perfettamente per i piccoli progetti, ma cosa succede se ho un progetto con più di una caratteristica importante e uso GitHub flow, sto indirettamente dicendo che tutte le caratteristiche che vengono unite al ramo master sono pronte per la produzione ma se ci pensiamo, lo sono?

Rilasciare una caratteristica per un progetto con molte caratteristiche non ha senso ed è qui che entra in gioco Git Flow. È molto simile a GitHub flow ma introduce un modo migliore di lavorare con il controllo di versione.

In Git Flow, creiamo un ramo di sviluppo e poi rendiamo il ramo di sviluppo il ramo predefinito finché non siamo pronti per la produzione. In questo modo, tutte le feature-branches sono create dal ramo di sviluppo e unite nel ramo di sviluppo quando sono completate.

Ha senso, vero? Ora, posso unire al ramo master solo quando credo che il mio software sia pronto per la produzione con tutte le caratteristiche aggiunte.

Dopo aver clonato il tuo repository, crea un

development

ramo

Controlla per vedere su quale ramo stai attualmente lavorando

Prova ad aggiungere un file, forse un file HTML così puoi aggiornare il tuo repository remoto con il ramo di sviluppo.

Vai al tuo repository remoto su GitHub, vai alle impostazioni, clicca su rami e rendi lo sviluppo il ramo predefinito

Ora, puoi creare delle feature-branches dal ramo

development

, creare una richiesta di pull da esso e unire al ramo

development

.

Quando tutte le tue caratteristiche sono pronte, segui gli stessi passi di cui sopra, rendi di nuovo il master predefinito, crea una richiesta di pull dallo sviluppo al master e fai un merge per la produzione.

So che è stata una lunga lettura, ma credo che ormai dovremmo sapere quando usare GitHub flow o Git Flow.

Grazie per aver letto.

Tags

Iscriviti a Hacker Noon

Crea il tuo account gratuito per sbloccare la tua esperienza di lettura personalizzata.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.