23 SP_MAGGIO 2017

Quando creiamo il nostro repositorio all'inizio ed eseguiamo il nostro primo commit, Git crea un branch (ramo) predefinito chiamato master. Immaginiamo un puntatore che si sposta ogni volta che eseguiamo un commit, e si sposta sull'ultimo commit eseguito. Immaginate di aver eseguito tre modifiche nel tempo e qundi tre commit,
Git crea con ogni commit una istantanea delle modifiche e si sposta con il puntatore sul terzo commit eseguito e precisamente lo fa sul branch master. Immaginate che il responsabile del progetto su cui state lavorando vi abbia chiesto una funzione che non volete includere nel progetto che avete appena terminato
e che avete in remoto su github. Potete creare un branch che vi consente di lavorare sui file senza  compromettere i files del branch master.
 
#Creare un branch

Per creare un branch di nome testing digitate questo comando

git branch testing



Ora dovete spostarvi sul branch appena creato per renderlo attivo con questo comando

git checkout testing



Ora provate ad eseguire una modifica al file prova e da terminale  digitate

 git add .


 e poi

git commit --m "modifica prova branch testing"



Ora provate a spostarvi di nuovo nel master e vedete che il file prova non ha l'ultima modifica appena eseguita, perchè stavate lavorando su una copia diversa del progetto ed isolata dal resto. Ecco a cosa servono i branches. Ora create un nuovo branch di nome testing2

git branch testing2



 e poi

git checkout testing2"


 
Modificate un file  ed eseguite

git add .


 e poi

git commit --m "testing2"



Poi ripassate al branch master

git checkout master


 Dovreste vedere tutto come era prima.
 
#Eseguire un merging dei branches

Supponiamo che le modifiche del branch testing2 non ci servano, allora possiamo eliminare questo branch. Spostiamoci prima nel branch master

git checkout master


poi digitiamo

git branch -D testing2"


 
Ora il branch testing2 è eliminato. Adesso vogliamo unire il branch test al branch master. Assicuriamoci di essere nel branch master ed inseriamo questo comando

git merge testing



 A questo punto potreste ricevere un messaggio di errore che vi parla di conflitti.
Questo succede quando sia nel branch  testing che nel branch testing2 abbiamo eseguito delle modifiche sullo stesso
file come nel caso nostro su prova. Ora se aprite il file in questione dovreste trovare una sezione come questa

<<<<<<<<<<<Head

----------------------
-----------------------


>>>>>>>>>>>>>>>>>>testing


In sostanza il testo che vedete subito sopra ai trattini è stato inserito con il branch testing2. Cancellate questo testo ed eliminate la sezione HEAD e le frecce e poi salvate. Ora dovrebbero rimanere solo le modifiche che abbiamo eseguito sotto branch testing. Adesso

git add . 


e poi

git commit --m "merge"



Ora rieseguite 

git merge testing

Eseguiamo il comando push per inviare in remoto il commit

git push -u origin master


 
#Pushing dei branches in remoto

Quando eseguiamo dei branches in locale non sono sincronizzati in remoto. Per condividere con il team un branch eseguiamo il push 

git push origin testing


Cioè origin è il branch master remoto e testing è quello locale che vogliamo unire. Ora dovreste vedere in remoto una situazione del genere





Se visitate il link dovreste veder il branch master che è quello del progetto su cui state lavorando e il branch testing che contiene le funzioni su cui state lavorando e che avete incluso. Creiamo adesso un brache testing3

git branch testing3

Spostatevi in questo branch ed aggiungete un nuovo file alla cartella del progetto di nome testing3.txt ed inserite del testo. Adesso 

git add .

 

  e poi 

git commit --m "testing3"



Ora spostiamoci nel branch master e da qui eseguiamo il push in remoto del branch testing3

git push origin testing3


 Ora il branch è on line ma non è compreso nel master, e quindi è una copia isolata che possiamo sfruttare per test senza compromettere l'orgine. Per sapere ogni momento in quale branch siamo eseguite questo comando

git branch
Pubblicato in Servizi web

NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo