SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Libcontainer: joining forces under one roof
Libcontainer: joining forces under one roofLibcontainer: joining forces under one roof
Libcontainer: joining forces under one roof
Andrey 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 NATS
Raül Pérez
 
Embedded Operating System - Linux
Embedded Operating System - LinuxEmbedded Operating System - Linux
Embedded Operating System - Linux
Emertxe Information Technologies Pvt Ltd
 
Canonical AWS Summit London 2011
Canonical AWS Summit London 2011Canonical AWS Summit London 2011
Canonical AWS Summit London 2011
Amazon Web Services
 

La actualidad más candente (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
 

Destacado

Pragmatic Guide to Git
Pragmatic Guide to GitPragmatic Guide to Git
Pragmatic Guide to Git
ConFoo
 
Intro To Regex In Java
Intro To Regex In JavaIntro To Regex In Java
Intro To Regex In Java
nabeelalimemon
 
Git Beginner Preso
Git Beginner PresoGit Beginner Preso
Git Beginner Preso
Gaurav Giri
 

Destacado (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
 

Similar a Git presentation

The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control Landscape
Lorna Mitchell
 
Svn vs mercurial vs github
Svn  vs  mercurial vs  githubSvn  vs  mercurial vs  github
Svn vs mercurial vs github
Vinoth Kannan
 

Similar a 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
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

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