Remote

Remote

Più repository, presenti su macchine diverse,
possono condividere lo stesso progetto.

Git fornisce gli strumenti per mantenere
questi repository sincronizzati tra loro.

Remote

Come posso rendere i miei commit
disponibili a tutti?

Anche se possibile, la sincronizzazione diretta
tra due personal computer non è generalmente utilizzata

Solitamente si fa affidamento a uno o più
hosting di repositories per fare da nodi comuni
tra più personal computer

gitlab logo
Remote

Possibile topologia con hosting

topology with hosting
Remote

Come "sincronizzo" due repository?

Prima di procedere al passaggio di dati
tra repository è necessario dire a git
come può raggiungere il repository remoto

Remote

Come posso collegare un repository
remoto al mio locale?

git remote add origin https://gitlab.org/path/repository.git
N.B. git per scambiare informazioni tra repository supporta sia https che ssh
Remote

Come posso collegare un repository
remoto al mio locale?

Ma cosa è cambiato?

git remote -v
origin  https://gitlab.org/path/repository.git (fetch)
origin  https://gitlab.org/path/repository.git (push)

Sono stati creati due riferimenti
ad un repository remoto (soprannominato da me “origin”),
uno per inviare i commit (push) e uno per riceverli (fetch)

Remote

Come aggiorno il repository remoto?

Push

git push origin master

Git invierà i commit del branch master al repository
remoto chiamato origin che cercherà di effettuare
il merging con il proprio repository

Remote

E se invece volessi scaricare i commit
dal repository remoto?

Pull

git pull origin master

Git proverà a scaricare i commit del branch master
dal repository remoto chiamato origin ed ad effettuare
il merging con la nostra storia locale

Remote

Prova... e se c'è un conflitto?

Indovinate un po'...

...bisogna correggerlo a manina!

In maniera molto simile a come abbiamo visto
nella sezione dei branch

Remote

Prova... e se c'è un conflitto?

Anche nel caso di un'operazione di push
saremmo noi a dover risolvere il conflitto

Dovremo effettuare un'operazione di pull,
risolvere il conflitto e poi ri-effettuare l'operazione di push

Buona prassi consiste nell'effettuare un'operazione di pull
prima di riprendere a lavorare sul nostro progetto per ridurre al minimo questa possibilità