From b639105837e6f8a23dd548e2d871649347c297e0 Mon Sep 17 00:00:00 2001 From: Elena of Valhalla'' Grandi Date: Mon, 19 Nov 2012 11:47:47 +0100 Subject: Some slides --- introduzione_a_git.rest | 123 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/introduzione_a_git.rest b/introduzione_a_git.rest index 000fa44..533b0b5 100644 --- a/introduzione_a_git.rest +++ b/introduzione_a_git.rest @@ -379,19 +379,142 @@ gitignore Aggiungere funzionalità ----------------------- +.. class:: handout + + Vogliamo aggiungere al nostro progetto la capacità di salutare + persone diverse; dato che dobbiamo fare un po' di modifiche, + perché non creare un nuovo *feature branch*? + + Questo è il workflow naturale per git: ogni nuova funzionalità + viene sviluppata a parte in un branch apposito, e poi + integrata nel branch principale, che in questo modo rimane + sempre funzionante. + +:: + + $ git checkout -b people + +``greeter/greeter.py``:: + + class Greeter: + """ """ + + def greet(self,greetee="World"): + print "Hello %s!"%gretee + +:: + + $ git add greeter/greeter.py + + Che bel sole là fuori! ---------------------- +.. class:: handout + + Anche se non abbiamo finito di implementare la nuova feature, + ci accorgiamo che c'è un bel sole e vogliamo andare a lavorarci + al parco (o dobbiamo correre a prendere il treno), e vogliamo + spostarci a lavorare sul portatile. + + Niente di più semplice: committiamo quel che abbiam fatto fin'ora, + cloniamo il repository su una chiavetta usb, e possiamo lavorare + dal portatile senza problemi. + +:: + + $ git commit -m 'greeter/greeter.py: support for multiple greetees.' + $ cd $USB_KEY + $ git clone /home/[...]/greeter + Cloning into 'greeter'... + done. + $ cd greeter + $ git branch + * people + $ git branch -a + * people + remotes/origin/HEAD -> origin/people + remotes/origin/master + remotes/origin/people + +.. class:: handout + + Con il comando ``git branch`` scopriamo che il clone ha già preso + come branch corrente quello che stavamo usando sul primo repository, + e con l'opzione ``-a`` possiamo vedere tutti i branch che abbiamo + a disposizione. + + Con git ogni copia comprende tutta la storia di tutti i branch + disponibili nel repository che si è copiato, e quindi è possibile + continuare a lavorare anche se ci si dovesse trovare senza connessione + ad internet. Inoltre ogni clone del repository è un backup completo, + utile nel caso in cui succeda qualcosa ad un hard disk. + +Aggiunte successive +------------------- + +.. class:: handout + + Finiamo le modifiche di cui ci stavamo occupando, committiamo. + +``greeter.py``:: + + #!/usr/bin/env python + + import sys + + import greeter + + def main(): + grt = greeter.Greeter() + try: + grt.greet(sys.argv[1]) + except IndexError: + grt.greet() + + if __name__ == '__main__': main() + +:: + + $ git add greeter.py + $ git commit -m 'greeter.py: support for a custom greetee.' + [people 59b9d39] greeter.py: support for a custom greetee. + 1 file changed. 6 insertions(+). 1 deletion(-) + Ora di rientrare ---------------- +.. class:: handout + + Riattacchiamo la chiavetta al PC, cerchiamo di riportare le modifiche + dal repository su chiavetta al repository su hard disk con + il comando ``git push``. + +:: + + $git push + +.. class:: handout + + C'è un problema: + +Reintegriamo in master +---------------------- + +.. class:: handout + + Un bel backup ------------- +.. class:: handout + Finalmente pubblichiamo ----------------------- +.. class:: handout + :: $ $BROWSER http://gitorious.org -- cgit v1.2.3