SlideShare une entreprise Scribd logo
1  sur  54
GIT

alessandro cinelli (cirpo)
Chi sono
Chi sono


• sviluppatore Php, Javascript e Java
Chi sono


• sviluppatore Php, Javascript e Java
• membro PugRoma, Grusp, symfony-it, WebDeBs
Chi sono


• sviluppatore Php, Javascript e Java
• membro PugRoma, Grusp, symfony-it, WebDeBs
• traduttore documentazione symfony, zend
  framework e ProGit
disclaimer
GIT
   "I'm an egotistical
 bastard, and I name all
my projects after myself.
  First Linux, now git."
                  Linus Torvalds
GIT


cvs -> svn -> git ?
Perchè Git?
Perchè Git?


Lo sviluppo software non (quasi mai) lineare
GIT
GIT
GIT

• velocità
GIT

• velocità
• design semplice
GIT

• velocità
• design semplice
• incentrato su uno sviluppo non lineare
GIT

• velocità
• design semplice
• incentrato su uno sviluppo non lineare
• distribuito
GIT

• velocità
• design semplice
• incentrato su uno sviluppo non lineare
• distribuito
• gestione di grandi progetti (es. kernel linux)
GIT

• velocità
• design semplice
• incentrato su uno sviluppo non lineare
• distribuito
• gestione di grandi progetti (es. kernel linux)
• integrita’
SVN / CVS
GIT
GIT
GIT
GIT
GIT
GIT
GIT
Terminologia:
GIT
Terminologia:
  • clone
GIT
Terminologia:
  • clone
  • branch
GIT
Terminologia:
  • clone
  • branch
  • merge
GIT
Terminologia:
  • clone
  • branch
  • merge
  • push
GIT
Terminologia:
  • clone
  • branch
  • merge
  • push
  • pull
GIT


ESEMPI
GIT
Pros:
GIT
Pros:
• Backup / point of failure
GIT
Pros:
• Backup / point of failure
• Velocità creazione branch
GIT
Pros:
• Backup / point of failure
• Velocità creazione branch
• Velocità merge
GIT
Pros:
• Backup / point of failure
• Velocità creazione branch
• Velocità merge
• Workflows vari
GIT
Pros:
• Backup / point of failure
• Velocità creazione branch
• Velocità merge
• Workflows vari
• Gestione progetti / contributi
GIT
Pros:
• Backup / point of failure
• Velocità creazione branch
• Velocità merge
• Workflows vari
• Gestione progetti / contributi
• GitHub
GIT
Cons:
GIT
Cons:
•Scarso supporto sistemi operativi non Unix
GIT
Cons:
•Scarso supporto sistemi operativi non Unix
• Gui incomplete
GIT
Cons:
•Scarso supporto sistemi operativi non Unix
• Gui incomplete
• No checkout singole directory
GIT
Cons:
•Scarso supporto sistemi operativi non Unix
• Gui incomplete
• No checkout singole directory
• No externals ala svn
GIT
Cons:
•Scarso supporto sistemi operativi non Unix
• Gui incomplete
• No checkout singole directory
• No externals ala svn
• Scarse prestazioni su protocollo Http
GIT
github
GIT FLOW
GIT FLOW
GIT FLOW
GIT FLOW
GIT FLOW
GIT FLOW
links
•   http://git-scm.com/

•   http://progit.org/

•   https://github.com/nvie/gitflow

•   http://nvie.com/posts/a-successful-git-branching-model/

•   https://github.com/

•   http://code.google.com/p/support/wiki/DVCSAnalysis

•   http://www.youtube.com/watch?v=4XpnKHJAok8

•   http://versioncontrolblog.com/comparison/Bazaar/CVS/Git/Mercurial/
    Subversion/index.html

•   http://whygitisbetterthanx.com/
grazie a tutti :)

• alessandro.cinelli@gmail.com
• twitter.com/cirpo
• http://delicious.com/cirpo
• http://it.linkedin.com/in/cinellialessandro

Contenu connexe

Tendances

Revisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitRevisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitFabio Alessandrelli
 
Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Gemma Catolino
 
Git – lo stupido gestore di contenuti
Git – lo stupido gestore di contenutiGit – lo stupido gestore di contenuti
Git – lo stupido gestore di contenutiGiulio Caccin
 
Introduzione a Git e GitLab
Introduzione a Git e GitLabIntroduzione a Git e GitLab
Introduzione a Git e GitLabYefry Figueroa
 
La mia prima lezione di pozioni
La mia prima lezione di pozioniLa mia prima lezione di pozioni
La mia prima lezione di pozioniGianluca Padovani
 
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014Giorgio Cefaro
 
Applicazioni Serverless con AWS
Applicazioni Serverless con AWSApplicazioni Serverless con AWS
Applicazioni Serverless con AWSsparkfabrik
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Marcello Teodori
 
Chi ha paura di Github? Conosciamolo meglio!
Chi ha paura di Github? Conosciamolo meglio!Chi ha paura di Github? Conosciamolo meglio!
Chi ha paura di Github? Conosciamolo meglio!Giacoma Allegretta
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a gitrpanfili
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Gerardo Di Iorio
 

Tendances (20)

Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Revisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitRevisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con git
 
Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Git e GitHub - L'essenziale
Git e GitHub - L'essenziale
 
Git – lo stupido gestore di contenuti
Git – lo stupido gestore di contenutiGit – lo stupido gestore di contenuti
Git – lo stupido gestore di contenuti
 
Introduzione a Git e GitLab
Introduzione a Git e GitLabIntroduzione a Git e GitLab
Introduzione a Git e GitLab
 
La mia prima lezione di pozioni
La mia prima lezione di pozioniLa mia prima lezione di pozioni
La mia prima lezione di pozioni
 
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
 
Applicazioni Serverless con AWS
Applicazioni Serverless con AWSApplicazioni Serverless con AWS
Applicazioni Serverless con AWS
 
Emerasoft Git quickstart
Emerasoft Git quickstartEmerasoft Git quickstart
Emerasoft Git quickstart
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Buildout
BuildoutBuildout
Buildout
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
Chi ha paura di Github? Conosciamolo meglio!
Chi ha paura di Github? Conosciamolo meglio!Chi ha paura di Github? Conosciamolo meglio!
Chi ha paura di Github? Conosciamolo meglio!
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Progetto Linux va a scuola
Progetto Linux va a scuolaProgetto Linux va a scuola
Progetto Linux va a scuola
 
Presentazione framework Symfony
Presentazione framework Symfony Presentazione framework Symfony
Presentazione framework Symfony
 
Anatomia di un progetto open-source
Anatomia di un progetto open-sourceAnatomia di un progetto open-source
Anatomia di un progetto open-source
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a git
 
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
 

En vedette

Git Intermediate Workshop slides v1.3
Git Intermediate Workshop slides v1.3Git Intermediate Workshop slides v1.3
Git Intermediate Workshop slides v1.3Davide Salvador
 
Sys05 uso consapevole di git - beyond the basic
Sys05   uso consapevole di git - beyond the basicSys05   uso consapevole di git - beyond the basic
Sys05 uso consapevole di git - beyond the basicDotNetCampus
 
Linux Day 2015 Genova
Linux Day 2015 GenovaLinux Day 2015 Genova
Linux Day 2015 Genovamperrando
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An IntroductionBehzad Altaf
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹Max Ma
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshellNelson Tai
 
Software Project Management using Redmine
Software Project Management using RedmineSoftware Project Management using Redmine
Software Project Management using RedmineRitesh Tamrakar
 
Redmine - a project management system
Redmine - a project management systemRedmine - a project management system
Redmine - a project management systemCaesar Chi
 
Git 101 Presentation
Git 101 PresentationGit 101 Presentation
Git 101 PresentationScott Chacon
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHubJames Gray
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective GitChanwoong Kim
 
Advanced Git
Advanced GitAdvanced Git
Advanced Gitsegv
 

En vedette (20)

Mini git tutorial
Mini git tutorialMini git tutorial
Mini git tutorial
 
Introduzione a GIT - Webinar Zend
Introduzione a GIT - Webinar ZendIntroduzione a GIT - Webinar Zend
Introduzione a GIT - Webinar Zend
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Git Intermediate Workshop slides v1.3
Git Intermediate Workshop slides v1.3Git Intermediate Workshop slides v1.3
Git Intermediate Workshop slides v1.3
 
Git–SVN
Git–SVNGit–SVN
Git–SVN
 
Sys05 uso consapevole di git - beyond the basic
Sys05   uso consapevole di git - beyond the basicSys05   uso consapevole di git - beyond the basic
Sys05 uso consapevole di git - beyond the basic
 
Linux Day 2015 Genova
Linux Day 2015 GenovaLinux Day 2015 Genova
Linux Day 2015 Genova
 
GITT (part 1 of 2)
GITT (part 1 of 2)GITT (part 1 of 2)
GITT (part 1 of 2)
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a git
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
Git基礎介紹
Git基礎介紹Git基礎介紹
Git基礎介紹
 
Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
Software Project Management using Redmine
Software Project Management using RedmineSoftware Project Management using Redmine
Software Project Management using Redmine
 
Redmine - a project management system
Redmine - a project management systemRedmine - a project management system
Redmine - a project management system
 
Git 101 Presentation
Git 101 PresentationGit 101 Presentation
Git 101 Presentation
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
[NDC16] Effective Git
[NDC16] Effective Git[NDC16] Effective Git
[NDC16] Effective Git
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
Redmine
RedmineRedmine
Redmine
 

Similaire à Git e Git Flow

Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceFabio Mora
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGian Maria Ricci
 
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions  CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions Davide Benvegnù
 
Data Analysis & Machine Learning
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine LearningCaffeina
 
GitOps and Best Practices for Cloud Native CI/CD
GitOps and Best Practices for Cloud Native CI/CDGitOps and Best Practices for Cloud Native CI/CD
GitOps and Best Practices for Cloud Native CI/CDAntonio Liccardi
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a gitKlab
 
Systemd - Firenze LUG
Systemd - Firenze LUGSystemd - Firenze LUG
Systemd - Firenze LUGTruelite
 
DevOpsConf2021 - GitOps and best practices for cloud native CI/CD
DevOpsConf2021 - GitOps and best practices for cloud native CI/CDDevOpsConf2021 - GitOps and best practices for cloud native CI/CD
DevOpsConf2021 - GitOps and best practices for cloud native CI/CDAntonio Liccardi
 
Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buiopietrobr
 
Come contribuire al processo di cambiamento. La comunità di developers.italia...
Come contribuire al processo di cambiamento. La comunità di developers.italia...Come contribuire al processo di cambiamento. La comunità di developers.italia...
Come contribuire al processo di cambiamento. La comunità di developers.italia...Team per la Trasformazione Digitale
 
Git Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funzionaGit Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funzionaInnoteam Srl
 

Similaire à Git e Git Flow (20)

Git branching model
Git branching modelGit branching model
Git branching model
 
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
 
Git gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teamsGit gitflow pull requests in devops focused teams
Git gitflow pull requests in devops focused teams
 
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions  CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 
Data Analysis & Machine Learning
Data Analysis & Machine LearningData Analysis & Machine Learning
Data Analysis & Machine Learning
 
Git
GitGit
Git
 
Git in 5 minuti
Git in 5 minutiGit in 5 minuti
Git in 5 minuti
 
Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Web 2.0 sviluppare e ottimizzare oggi
Web 2.0 sviluppare e ottimizzare oggiWeb 2.0 sviluppare e ottimizzare oggi
Web 2.0 sviluppare e ottimizzare oggi
 
Gitt (part 2 of 2)
Gitt (part 2 of 2)Gitt (part 2 of 2)
Gitt (part 2 of 2)
 
GitOps and Best Practices for Cloud Native CI/CD
GitOps and Best Practices for Cloud Native CI/CDGitOps and Best Practices for Cloud Native CI/CD
GitOps and Best Practices for Cloud Native CI/CD
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a git
 
Systemd - Firenze LUG
Systemd - Firenze LUGSystemd - Firenze LUG
Systemd - Firenze LUG
 
DevOpsConf2021 - GitOps and best practices for cloud native CI/CD
DevOpsConf2021 - GitOps and best practices for cloud native CI/CDDevOpsConf2021 - GitOps and best practices for cloud native CI/CD
DevOpsConf2021 - GitOps and best practices for cloud native CI/CD
 
Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buio
 
Come contribuire al processo di cambiamento. La comunità di developers.italia...
Come contribuire al processo di cambiamento. La comunità di developers.italia...Come contribuire al processo di cambiamento. La comunità di developers.italia...
Come contribuire al processo di cambiamento. La comunità di developers.italia...
 
Git
GitGit
Git
 
Git Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funzionaGit Flow - Un modello di branching che funziona
Git Flow - Un modello di branching che funziona
 
WordPress SEO
WordPress SEOWordPress SEO
WordPress SEO
 
Containerized Liferay
Containerized LiferayContainerized Liferay
Containerized Liferay
 

Plus de Alessandro Cinelli (cirpo)

PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolAlessandro Cinelli (cirpo)
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageAlessandro Cinelli (cirpo)
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolAlessandro Cinelli (cirpo)
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisAlessandro Cinelli (cirpo)
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....Alessandro Cinelli (cirpo)
 
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...Alessandro Cinelli (cirpo)
 

Plus de Alessandro Cinelli (cirpo) (14)

Dear JavaScript
Dear JavaScriptDear JavaScript
Dear JavaScript
 
The evolution of asynchronous JavaScript
The evolution of asynchronous JavaScriptThe evolution of asynchronous JavaScript
The evolution of asynchronous JavaScript
 
The journey to become a solid developer
The journey to become a solid developer The journey to become a solid developer
The journey to become a solid developer
 
The evolution of asynchronous javascript
The evolution of asynchronous javascriptThe evolution of asynchronous javascript
The evolution of asynchronous javascript
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stage
 
PHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the foolPHP is the king, nodejs is the prince and Lua is the fool
PHP is the king, nodejs is the prince and Lua is the fool
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Don't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apisDon't screw it up: how to build durable web apis
Don't screw it up: how to build durable web apis
 
Nodejsconf 2012 - opening
Nodejsconf 2012 - openingNodejsconf 2012 - opening
Nodejsconf 2012 - opening
 
Symfonyday Keynote
Symfonyday KeynoteSymfonyday Keynote
Symfonyday Keynote
 
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
 
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
AgileTour Brescia - Metodi Agili: lavorare in modo sostenibile e vincente in ...
 
Symfony2 and Ror3 friends for an hour
Symfony2 and Ror3 friends for an hourSymfony2 and Ror3 friends for an hour
Symfony2 and Ror3 friends for an hour
 

Git e Git Flow

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n