Categories
git linguaggio javascript Linux

git (4)

Git è uno strumento utilissimo per gestire i rami di sviluppo a basso livello, ma è compito del progettista decidere quanti e quali rami deve avere un progetto. Per fortuna esistono delle linee guida per il progettista e uno strumento di livello più alto (da installare), di nome git-flow.

Questa immagine è utile per spiegare alcuni esempi:

l’immagine mostra alcuni esempi di rami nel progetto ed esempi e di merge. Ogni cerchio è un commit

Rami suggeriti:

  • main (o master) il ramo pronto per il rilascio in produzione
  • release, ramo parallelo al main, il suo commit (8) (9) precede il rilascio nel ramo main (per correggere e per aggiungere metadati)
  • develop, ramo del codice instabile, creato (4) (5) per evitare di modificare direttamente il codice nel ramo main
  • feature che sono diversi rami di nome feature/* diversi per ogni nuova feature (6) (7)
  • hotfix, rami di nome hotfix/* a vita breve, per le correzioni di emergenza al ramo main, passando per il ramo develop (1) (2) (3)

Comando per inizializzare il progetto

apt install git-flow
git clone ...<URL>
git flow init

Produce questo output guidato

Which branch should be used for bringing forth production releases?
   - main
Branch name for production releases: [main]
Branch name for "next release" development: [develop] 

How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]
Hotfix branches? [hotfix/] 
Support branches? [support/] 
Version tag prefix? [] 
Hooks and filters directory? [/home/utente/git/progetto/.git/hooks]

A questo punto sono stati creati automaticamente i seguenti rami:

  • main
  • develop

Prossimi passi:

  • Per creare un ramo hotfix/nome dal ramo main (ad esempio, se l’attuale release si chiama 1.3.3 il nuovo nome sarà 1.3.4)
  • ATTENZIONE: se nel frattempo è cambiato il ramo main, devi aggiornare con pull e cambiare nome al ramo hotfix
  • Per chiudere un ramo hotfix/nome nel main, nel develop, aggiunge un tag
git flow hotfix start nome
git flow hotfix finish nome
  • Per creare un ramo release/nome dal ramo develop
  • Per chiudere il ramo release/nome nel main, nel develop, aggiunge un tag
git flow release start nome  1.4.0
git flow release finish nome

per creare e chiudere il ramo feature/nome dal ramo develop

git flow feature start nome
git flow feature finish nome

Alcuni di questi rami possono essere pubblicati, ma non è obbligatorio:

git flow feature publish nome