SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Working with Git distributed
                   revision control system



Jordi Mas – jmas@softcatala.org, @jordimash
Barcelona Developers Conference 2011
Index

- Introduction to Git
- Key concepts
- Branching
- The software
- Further reading
- On-hands work
What, Where, When, Why & Who
 ●    Git is an open source DVCS (Distributed Version Control System)
 ●    Comes from the needs of the kernel.org community
 ●    Started in 2005 by Linus Torvalds, continued by Junio Hamano and +
 ●    “...Distributed version control is … possibly the biggest advance in
      software development technology in the [past] ten years." Joel
      Spolsky *
 ●    Other popular open source DVCS
           Bazaar, Mercurial

* http://joelonsoftware.com/items/2010/03/17.html
Git - Features
●   Distributed development        ●   Supports HTTP, FTP, rsync, or a
                                       Git protocol (over ssh too).
●   Fast as a shark
                                   ●   Can act as a SVN/CVS server,
●   Great support for branches         transparent to legacy users
●   Secure and consistent          ●   Pre / post hooks
●   Toolkit design (Aka API)
●   Multi-platform (Linux, Mac &
    Windows)
Community
         Hundreds
●   Dozens of large open source projects (GNOME, Mono, KDE,
    Kernel.org, Android, github hosting, etc) and corporate users using it
    every day
●   Good books from Apress, O'Reilly and on-line
●   Community documentation
●   Forums, mailing lists, weblogs, irc
Index

- Introduction to Git
- Key concepts
- Branching
- The software
- Further reading
- On-hands work
DVCS
●   Server based (SVN, etc)

         You have the lastest version of the repo
         Depends always on a sever (commit, blame, etc)
         Revisions numbers are tied to a repository
     


●   Git

         Every client has a full copy of the repository
         Can work off-line
         Revisions numbers are SHA-1 based on content
Staging area or index
●   An intermediate local area that you can setup how your commit will
    look like before you commit it. Like a temporary local branch.
        Allows precise control of what your commit is going to look like
        Usefull for single commits with many changes & files
●   You can skip it by using git commit -a and work directly on the
    repository
Index

- Introduction to Git
- Key concepts
- Branching
- The software
- Further reading
- On-hands work
Branches – diverging branch
●   A branch uses 40 bytes since it is just a pointer (compare this to
    the copy approach of SVN)
●   A experiment branch with a single commit and master with a
    different commit
Branches – 3 way merging
Three-way merge between the two latest branch snapshots (C3 and
C4) and the most recent common ancestor of the two (C2), creating a
new snapshot (and commit)
Branches – rebasing
Uses the common ancestor of the two branches getting the diff
introduced by each commit of the branch you’re on, saving those diffs
to temporary files, resetting the current branch to the same commit as
the branch you are rebasing onto, and finally applying each change in
turn.
Index

- Introduction to Git
- Key concepts
- Branching
- The software
- Further reading
- On-hands work
Git official packages
●   Download them from http://git-scm.com/download
Tortoise Git for Windows
Software – cgit web based UI




 Sample: http://git.gnome.org/browse/gbrainy/
Index

- Introduction to Git
- Key concepts
- Branching
- The software
- Further reading
- On-hands work
A strongly recommended book




       http://www.progit.org/
Index

- Introduction to Git
- Key concepts
- Branching
- The software
- Further reading
- On-hands work

Contenu connexe

Tendances

Introduction to git
Introduction to gitIntroduction to git
Introduction to gitRam0603
 
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roofAndrey Vagin
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSRaül Pérez
 
Getting Started with Containers
Getting Started with ContainersGetting Started with Containers
Getting Started with ContainersScott Lowe
 
Nats.io meetup october 2015 - Community Update
Nats.io meetup october 2015 - Community UpdateNats.io meetup october 2015 - Community Update
Nats.io meetup october 2015 - Community UpdateBrian Flannery
 
20160401 Gluster-roadmap
20160401 Gluster-roadmap20160401 Gluster-roadmap
20160401 Gluster-roadmapGluster.org
 
Docker for Drupal development
Docker for Drupal developmentDocker for Drupal development
Docker for Drupal developmentWilliam Mortada
 
Certificate based access type in openstack Manila @ openstack paris nov. 2014
Certificate based access type in openstack Manila @ openstack paris nov. 2014Certificate based access type in openstack Manila @ openstack paris nov. 2014
Certificate based access type in openstack Manila @ openstack paris nov. 2014Deepak Shetty
 
First steps with kubernetes
First steps with kubernetesFirst steps with kubernetes
First steps with kubernetesVinícius Kroth
 
BKK16-411 Devicetree Specification
BKK16-411 Devicetree SpecificationBKK16-411 Devicetree Specification
BKK16-411 Devicetree SpecificationLinaro
 
Marriage with docker
Marriage with dockerMarriage with docker
Marriage with dockerDušan Katona
 
Canonical AWS Summit London 2011
Canonical AWS Summit London 2011Canonical AWS Summit London 2011
Canonical AWS Summit London 2011Amazon Web Services
 
Testing Rest with Spring by Kostiantyn Baranov (Senior Software Engineer, Gl...
Testing Rest with Spring  by Kostiantyn Baranov (Senior Software Engineer, Gl...Testing Rest with Spring  by Kostiantyn Baranov (Senior Software Engineer, Gl...
Testing Rest with Spring by Kostiantyn Baranov (Senior Software Engineer, Gl...GlobalLogic Ukraine
 

Tendances (20)

Docker. General overview
Docker. General overviewDocker. General overview
Docker. General overview
 
OpenZFS - BSDcan 2014
OpenZFS - BSDcan 2014OpenZFS - BSDcan 2014
OpenZFS - BSDcan 2014
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Docker off the grid
Docker off the gridDocker off the grid
Docker off the grid
 
Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATS
 
Master the Monorepo
Master the MonorepoMaster the Monorepo
Master the Monorepo
 
Getting Started with Containers
Getting Started with ContainersGetting Started with Containers
Getting Started with Containers
 
Nats.io meetup october 2015 - Community Update
Nats.io meetup october 2015 - Community UpdateNats.io meetup october 2015 - Community Update
Nats.io meetup october 2015 - Community Update
 
Jp medierworkflow
Jp medierworkflowJp medierworkflow
Jp medierworkflow
 
20160401 Gluster-roadmap
20160401 Gluster-roadmap20160401 Gluster-roadmap
20160401 Gluster-roadmap
 
Docker for Drupal development
Docker for Drupal developmentDocker for Drupal development
Docker for Drupal development
 
Certificate based access type in openstack Manila @ openstack paris nov. 2014
Certificate based access type in openstack Manila @ openstack paris nov. 2014Certificate based access type in openstack Manila @ openstack paris nov. 2014
Certificate based access type in openstack Manila @ openstack paris nov. 2014
 
First steps with kubernetes
First steps with kubernetesFirst steps with kubernetes
First steps with kubernetes
 
BKK16-411 Devicetree Specification
BKK16-411 Devicetree SpecificationBKK16-411 Devicetree Specification
BKK16-411 Devicetree Specification
 
Marriage with docker
Marriage with dockerMarriage with docker
Marriage with docker
 
Embedded Operating System - Linux
Embedded Operating System - LinuxEmbedded Operating System - Linux
Embedded Operating System - Linux
 
Canonical AWS Summit London 2011
Canonical AWS Summit London 2011Canonical AWS Summit London 2011
Canonical AWS Summit London 2011
 
Testing Rest with Spring by Kostiantyn Baranov (Senior Software Engineer, Gl...
Testing Rest with Spring  by Kostiantyn Baranov (Senior Software Engineer, Gl...Testing Rest with Spring  by Kostiantyn Baranov (Senior Software Engineer, Gl...
Testing Rest with Spring by Kostiantyn Baranov (Senior Software Engineer, Gl...
 
DockerCon 2016 Recap
DockerCon 2016 RecapDockerCon 2016 Recap
DockerCon 2016 Recap
 

En vedette

Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitMozDevz
 
GIT presentation
GIT presentationGIT presentation
GIT presentationNaim Latifi
 
Pragmatic Guide to Git
Pragmatic Guide to GitPragmatic Guide to Git
Pragmatic Guide to GitConFoo
 
Intro To Regex In Java
Intro To Regex In JavaIntro To Regex In Java
Intro To Regex In Javanabeelalimemon
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash CourseNilay Binjola
 
Git Beginner Preso
Git Beginner PresoGit Beginner Preso
Git Beginner PresoGaurav Giri
 
Beginner's guide to git
Beginner's guide to gitBeginner's guide to git
Beginner's guide to gitLim Sim
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 

En vedette (11)

git presentation
git presentation git presentation
git presentation
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
 
Pragmatic Guide to Git
Pragmatic Guide to GitPragmatic Guide to Git
Pragmatic Guide to Git
 
Intro To Regex In Java
Intro To Regex In JavaIntro To Regex In Java
Intro To Regex In Java
 
Git basics
Git basicsGit basics
Git basics
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Git Presentation - Handout
Git Presentation - HandoutGit Presentation - Handout
Git Presentation - Handout
 
Git Beginner Preso
Git Beginner PresoGit Beginner Preso
Git Beginner Preso
 
Beginner's guide to git
Beginner's guide to gitBeginner's guide to git
Beginner's guide to git
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 

Similaire à Git presentation

The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control LandscapeLorna Mitchell
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflowsstc-siliconvalley
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Ahmed El-Arabawy
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Makeesben1962
 
Mantis Code Deployment Process
Mantis Code Deployment ProcessMantis Code Deployment Process
Mantis Code Deployment ProcessJen Wei Lee
 
Session: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowSession: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowMidhun Mohanan
 
Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Lalatendu Mohanty
 
The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)Oracle Developers
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfAswathRangaraj1
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs githubVinoth Kannan
 

Similaire à Git presentation (20)

The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control Landscape
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
Git Tutorial
Git Tutorial Git Tutorial
Git Tutorial
 
Versioning for Developers
Versioning for DevelopersVersioning for Developers
Versioning for Developers
 
Version Control, Writers, and Workflows
Version Control, Writers, and WorkflowsVersion Control, Writers, and Workflows
Version Control, Writers, and Workflows
 
Contributing To CentOS SIGs
Contributing To CentOS SIGsContributing To CentOS SIGs
Contributing To CentOS SIGs
 
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
Embedded Systems: Lecture 10: Introduction to Git & GitHub (Part 1)
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
 
Mantis Code Deployment Process
Mantis Code Deployment ProcessMantis Code Deployment Process
Mantis Code Deployment Process
 
Collaborative software development with versioning
Collaborative software development with versioningCollaborative software development with versioning
Collaborative software development with versioning
 
Session: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow WorkflowSession: Git Basics & GitFlow Workflow
Session: Git Basics & GitFlow Workflow
 
Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)The Fn Project: A Quick Introduction (December 2017)
The Fn Project: A Quick Introduction (December 2017)
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
 

Dernier

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Dernier (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Git presentation

  • 1. Working with Git distributed revision control system Jordi Mas – jmas@softcatala.org, @jordimash Barcelona Developers Conference 2011
  • 2. Index - Introduction to Git - Key concepts - Branching - The software - Further reading - On-hands work
  • 3. What, Where, When, Why & Who ● Git is an open source DVCS (Distributed Version Control System) ● Comes from the needs of the kernel.org community ● Started in 2005 by Linus Torvalds, continued by Junio Hamano and + ● “...Distributed version control is … possibly the biggest advance in software development technology in the [past] ten years." Joel Spolsky * ● Other popular open source DVCS  Bazaar, Mercurial * http://joelonsoftware.com/items/2010/03/17.html
  • 4. Git - Features ● Distributed development ● Supports HTTP, FTP, rsync, or a Git protocol (over ssh too). ● Fast as a shark ● Can act as a SVN/CVS server, ● Great support for branches transparent to legacy users ● Secure and consistent ● Pre / post hooks ● Toolkit design (Aka API) ● Multi-platform (Linux, Mac & Windows)
  • 5. Community Hundreds ● Dozens of large open source projects (GNOME, Mono, KDE, Kernel.org, Android, github hosting, etc) and corporate users using it every day ● Good books from Apress, O'Reilly and on-line ● Community documentation ● Forums, mailing lists, weblogs, irc
  • 6. Index - Introduction to Git - Key concepts - Branching - The software - Further reading - On-hands work
  • 7. DVCS ● Server based (SVN, etc)  You have the lastest version of the repo  Depends always on a sever (commit, blame, etc)  Revisions numbers are tied to a repository  ● Git  Every client has a full copy of the repository  Can work off-line  Revisions numbers are SHA-1 based on content
  • 8. Staging area or index ● An intermediate local area that you can setup how your commit will look like before you commit it. Like a temporary local branch.  Allows precise control of what your commit is going to look like  Usefull for single commits with many changes & files ● You can skip it by using git commit -a and work directly on the repository
  • 9. Index - Introduction to Git - Key concepts - Branching - The software - Further reading - On-hands work
  • 10. Branches – diverging branch ● A branch uses 40 bytes since it is just a pointer (compare this to the copy approach of SVN) ● A experiment branch with a single commit and master with a different commit
  • 11. Branches – 3 way merging Three-way merge between the two latest branch snapshots (C3 and C4) and the most recent common ancestor of the two (C2), creating a new snapshot (and commit)
  • 12. Branches – rebasing Uses the common ancestor of the two branches getting the diff introduced by each commit of the branch you’re on, saving those diffs to temporary files, resetting the current branch to the same commit as the branch you are rebasing onto, and finally applying each change in turn.
  • 13. Index - Introduction to Git - Key concepts - Branching - The software - Further reading - On-hands work
  • 14. Git official packages ● Download them from http://git-scm.com/download
  • 15. Tortoise Git for Windows
  • 16. Software – cgit web based UI Sample: http://git.gnome.org/browse/gbrainy/
  • 17. Index - Introduction to Git - Key concepts - Branching - The software - Further reading - On-hands work
  • 18. A strongly recommended book http://www.progit.org/
  • 19. Index - Introduction to Git - Key concepts - Branching - The software - Further reading - On-hands work