Tutorial Git - Rami
- Perché è necessario il ramo?
- Creare un nuovo ramo in Git
- Cancellare un ramo in Git
- Creare e controllare un nuovo ramo contemporaneamente in Git
![Tutorial Git - Rami](/img/Git/feature-image---Git-Branches.webp)
In questo tutorial, impareremo una delle caratteristiche più importanti del sistema di controllo della versione di git: il ramo.
Perché è necessario il ramo?
Fino ad ora, abbiamo lavorato solo su un ramo - il ramo master
. È il ramo predefinito quando creiamo un nuovo repository.
In generale, il ramo master
rappresenta la versione stabile dei vostri codici ed è destinato ad essere rilasciato o pubblicato. Per questo motivo, non vogliamo provare nuove funzionalità sul nuovo codice del ramo master
per evitare che questo incasini il codice.
Quello di cui abbiamo bisogno quando vogliamo aggiungere una nuova funzionalità alla nostra applicazione, è di creare un ambiente isolato per provare questa nuova funzionalità, e se la finiamo e la proviamo, possiamo fondere questa nuova funzionalità nel ramo master
. Invece di aggiungere altri commit al ramo master
, creiamo un nuovo ramo per lavorare come ambiente isolato e per testare la nuova funzionalità.
Creare un nuovo ramo in Git
$ git branch test_branch
Quello che stiamo facendo qui quando facciamo questo ramo test_branch
è che stiamo copiando lo stato del codice del ramo master
su questo ramo, e poi possiamo lavorare in questo ramo test_branch
.
Si possono elencare i rami disponibili sul PC digitando,
$ git branch
* master
test_branch
Qui sono elencati il nuovo test_branch
e il master
.
Ora siete ancora sul ramo master
anche se avete appena creato il nuovo ramo. È necessario controllare il nuovo ramo per lavorarci.
$ git checkout test_branch
Switched to branch 'test_branch'
D test1_rename.txt
Dice che ora è passato al ramo test_branch
, e se si fa git branch
di nuovo,
$ git branch
master
* test_branch
Poi vedremo che ora siamo sul ramo test_branch
perché l’asterisco *
è prima di test_branch
ma non più master
.
Aggiungiamo un po’ di testo al file test3.txt
, come Questa è la riga aggiunta nel ramo test_branch
. Ora, se fate git status
, vedrete che avete cambiato questo file.
$ git status
On branch test_branch
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test3.txt
no changes added to commit (use "git add" and/or "git commit -a")
Potremmo impegnare le modifiche a questo ramo come abbiamo imparato negli ultimi capitoli.
Quello che abbiamo fatto è che abbiamo creato questo nuovo ramo e fatto alcune modifiche che sono isolate dal ramo master
. I codici nel ramo master
rimangono invariati e stabili.
Cancellare un ramo in Git
Dopo che siamo soddisfatti della nuova funzionalità aggiunta alla filiale, potremmo cancellarla.
$ git checkout master
$ git branch -d test_branch
error: The branch 'test_branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test_branch'.
Il parametro -d
dopo branch
significa che cancellerà il ramo specificato.
Abbiamo un errore che dice The branch 'test_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D test_branch'.
. La d
minuscola funziona solo una volta che abbiamo unito il ramo, ma la D
maiuscola potrebbe cancellare il ramo con la forza. Introdurremo come fondere il ramo nei prossimi capitoli, ma per ora, usiamo solo le maiuscole D
per cancellare questo ramo.
$ git branch -D test_branch
Deleted branch test_branch (was 7d6bca6).
Se si controlla il ramo ora, mostra solo il ramo master
ora.
$ git branch
* master
Creare e controllare un nuovo ramo contemporaneamente in Git
Il flusso di lavoro mostrato sopra crea prima un ramo usando git branch
e poi controlla questo ramo usando git checkout
.
Ha un modo più veloce per combinare questi due passaggi in uno solo.
$ git checkout -b new_test_branch
Switched to a new branch 'new_test_branch'
M test3.txt
Quello che fa è che crea un ramo e lo controlla anche. Così non dobbiamo eseguire questi due passi separatamente.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook