Git 2014 - L'infrastruttura tecnologica del catasto dei geositi della Puglia
Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un...
Transcript of Git usi più e meno originali - ImoLUG · Scempiaggini Introduzione Esempio banale Alice ha un...
Scempiaggini Introduzione
Git usi piu e meno originali
Luca Lama
October,something,2014
Scempiaggini Introduzione
Perche questo tizio. . .
. . . ci rompe con roba chenon ci interessa?. . . ci presenta questo sistemacomplicato?. . . non ci lascia cazzeggiare in pacesull’ iPhone?
Scempiaggini Introduzione
Perche questo tizio. . .
. . . ci rompe con roba che non ciinteressa?. . . ci presenta questosistema complicato?. . . non ci lascia cazzeggiare in pacesull’ iPhone?
Scempiaggini Introduzione
Perche questo tizio. . .
. . . ci rompe con roba che non ciinteressa?. . . ci presenta questo sistemacomplicato?. . . non ci lasciacazzeggiare in pace sull’iPhone?
Scempiaggini Introduzione
Perche. . .
. . . avete interpellatoqualche santo dopo unCtr+s sbagliato!. . . i gruppi delle esperienze son daalmeno due persone!. . . non e affatto complicato!. . .
Scempiaggini Introduzione
Perche. . .
. . . avete interpellato qualche santodopo un Ctr+s sbagliato!. . . i gruppi delleesperienze sono daalmeno due persone!. . . non e affatto complicato!. . .
Scempiaggini Introduzione
Perche. . .
. . . avete interpellato qualche santodopo un Ctr+s sbagliato!. . . i gruppi delle esperienze son daalmeno due persone!. . . non e affattocomplicato!. . .
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!
Scempiaggini Introduzione
Torniamo seri ?
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.
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.
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).
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)
Scempiaggini Introduzione
Esempio banale
Alice ha un progetto su cui lavora e Bob vuole contribuire.
Senza Git Con Git
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
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
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
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.
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.
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
Scempiaggini Introduzione
Esempio piu concreto
• git init
• git status
• Modificare
un file
• git status
• git commit
• git status
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
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).
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>
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!
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?