Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un...

26
Scempiaggini Introduzione Git usi pi ` u e meno originali Luca Lama October,something,2014

Transcript of Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un...

Page 1: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Git usi piu e meno originali

Luca Lama

October,something,2014

Page 2: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche questo tizio. . .

. . . ci rompe con roba chenon ci interessa?. . . ci presenta questo sistemacomplicato?. . . non ci lascia cazzeggiare in pacesull’ iPhone?

Page 3: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche questo tizio. . .

. . . ci rompe con roba che non ciinteressa?. . . ci presenta questosistema complicato?. . . non ci lascia cazzeggiare in pacesull’ iPhone?

Page 4: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche questo tizio. . .

. . . ci rompe con roba che non ciinteressa?. . . ci presenta questo sistemacomplicato?. . . non ci lasciacazzeggiare in pace sull’iPhone?

Page 5: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche. . .

. . . avete interpellatoqualche santo dopo unCtr+s sbagliato!. . . i gruppi delle esperienze son daalmeno due persone!. . . non e affatto complicato!. . .

Page 6: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche. . .

. . . avete interpellato qualche santodopo un Ctr+s sbagliato!. . . i gruppi delleesperienze sono daalmeno due persone!. . . non e affatto complicato!. . .

Page 7: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche. . .

. . . avete interpellato qualche santodopo un Ctr+s sbagliato!. . . i gruppi delle esperienze son daalmeno due persone!. . . non e affattocomplicato!. . .

Page 8: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Perche. . .

. . . avete interpellato qualche santodopo un Ctr+s sbagliato!. . . i gruppi delle esperienze son daalmeno due persone!. . . non e affatto complicato!. . . me l’hanno chiesto!

Page 9: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Torniamo seri ?

Page 10: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Cos’e Git?

• Un sistema per il controllo di versione:

• Controllo di versione:• In pratica:

- Uno strumento per tenere ordine.

- Uno strumento per lavorare insieme.

Page 11: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Cos’e Git?

• Un sistema per il controllo di versione:

• Controllo di versione:

• In pratica:

Gli strumenti software per il controllo versione sono ritenuti molto spessonecessari per la maggior parte dei progetti di sviluppo software. Lacronologia di Wikipedia e un esempio di sistema di controllo versione.

Page 12: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Cos’e Git?

• Un sistema per il controllo di versione:• Controllo di versione:

• In pratica:

E un sistema per tenere traccia delle modifiche apportate a qualsiasidocumento. E per non avere problemi a modificare in due lo stesso file.Il sistema funziona meglio per documenti in plain text o qualsiasilinguaggio di programmazione o di markup(HTML, LATEX).

Page 13: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Per cosa si puo usare?

Per cosa lo uso io:

• Per progetti software e firmware di lavoro.

• Per le presentazioni e i documenti scritti in LATEX.

• Perche sono disordinato.

Per cosa potreste usarlo?

(non e una domanda retorica)

Page 14: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git Con Git

Page 15: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git

• Bob copia o lavora sugli stessi filedi Alice.

Con Git

Page 16: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git

• Bob copia o lavora sugli stessi filedi Alice.

Con Git

• Bob clona il repo di Alicegit clone /home/alice/project

Page 17: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git

• Bob copia o lavora sugli stessi filedi Alice.• Bob modifica alcuni files. AliceModifica alcuni files.

Con Git

• Bob clona il repo di Alicegit clone /home/alice/project

Page 18: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git

• Bob copia o lavora sugli stessi filedi Alice.• Bob modifica alcuni files. AliceModifica alcuni files.

Con Git

• Bob clona il repo di Alicegit clone /home/alice/project

• Bob modifica alcuni files. AliceModifica alcuni files.

Page 19: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git

• Bob copia o lavora sugli stessi filedi Alice.• Bob modifica alcuni files. AliceModifica alcuni files.• Uno dei due prende i file dell’altroe copia nel proprio le differenze.

Con Git

• Bob clona il repo di Alicegit clone /home/alice/project

• Bob modifica alcuni files. AliceModifica alcuni files.

Page 20: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio banale

Alice ha un progetto su cui lavora e Bob vuole contribuire.

Senza Git

• Bob copia o lavora sugli stessi filedi Alice.• Bob modifica alcuni files. AliceModifica alcuni files.• Uno dei due prende i file dell’altroe copia nel proprio le differenze.

Con Git

• Bob clona il repo di Alicegit clone /home/alice/project

• Bob modifica alcuni files. AliceModifica alcuni files.• git pull /home/bob/project

Page 21: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Esempio piu concreto

• git init

• git status

• Modificare

un file

• git status

• git commit

• git status

Page 22: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Installazione

Debian based: sudo apt-get install git

Red Hat based: sudo yum install git

Arch based: sudo pacman -S git

Ovviamente si puo fare in tutto anche da synaptic o qualsiasi gestoregrafico di pacchetti, se si vuole un’interfaccia grafica esiste il progetto Gitgui per windows. Per linux c’e l’imbarazzo della scelta:

https://git.wiki.kernel.org/index.php/

InterfacesFrontendsAndTools

Page 23: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Server Side

Sul server la procedura di installazione e la stessa, in genere si preferisceche gli utenti abbiano un accesso ssh sulla macchina.Non e necessario che partano servizi particolari allo startup perche si fatutto tramite ssh.

Inizializzare un repo: git init –bare

condividerlo con tutti: git config core.SharedRepository all

modificare i permessi: chmod

Nel caso di un server pubblico sicurezza vorrebbe che si creasse l’utentegit con git-shell come shell di accesso (se si procede in questo modo none necessario rendere il repo shared).

Page 24: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Client Side

Si clona quello appena creato nel server e si cominciano ad aggiungere ifile di testo.

Clone: git clone <percorso del repo remoto>

Add: git add

Commit: git commit -m ”messaggio del commit”

Push: git push origin <nome del branch>

Page 25: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

BranchDa grandi poteri... 1

Un branch in un repository e una copia di un oggetto tale per cui lemodifiche possano avvenire in parallelo.

gource.mp4

1...so’ ca... amari!

Page 26: Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un progetto su cui lavora e Bob vuole contribuire. Senza Git Bob copia o lavora sugli stessi

Scempiaggini Introduzione

Conclusioni

Vantaggi

• Consente di tenere una storia delle modifiche.

• Consente a piu utenti di modificare file in contemporanea.

Svanaggi

• Utilizzato male fa una gran confusione.

• Vi sono conflitti che devono essere risolti a mano.

Domande?