git usi più e meno originali - imolug · scempiaggini introduzione esempio banale alice ha un...
TRANSCRIPT
![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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022053003/5f07be5c7e708231d41e8535/html5/thumbnails/26.jpg)
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?