SlideShare ist ein Scribd-Unternehmen logo
1 von 30
---
   +++
                                      Chicago ALT.NET
                                       June 10th 2009

Sergio Pereira
      sergio@sergiopereira.com
      http://sergiopereira.com/blog
      @sergiopereira
                             1
Linux kernel development

        Linus Torvalds, mid-2005

                  Replaces BitKeeper

                               Perl  C
                     2
msysGit: wizard-style installer


installer or macports


packaged (apt, yum, rpm)

          3
compile from source!



   4
Git on
Windows

          5
6
1st class citizens

     Local or remote

      Low ceremony

No politics, no conventions

 Branch, branch, branch




 7
Download deltas

           Local merge (fast)

          No magic for conflicts

Tracks change authors and committer




      8
• HTTP, HTTPS
• GIT
• File system
• SSH
• rsync
• patch files ;)


       9
.git            Git          Object
directory       commands       database
 Repository                    Compression
                  High level
                 (porcelain)   Encryption
Configuration                     Blobs

 References                       Trees
                  Low level     Commits
                 (plumbing)
   Hooks                          Tags

                     10
• Secure Hash Algorithm
        • Global identity
        • Authenticity


da9973c6f9600d90e64aac647f3ed22dfd692f70

                  11
BLOB
using System.IO;
public class Whatever
{
  // …
}

       5,811 bytes
 d56210fee9133…

          12
TREE
blob   web.config    4df3bb723…
blob   global.asax   aee87dc6a…
tree   bin           d1c4a7220…
tree   images        6f32f4409…
…

             301 bytes
       61bcb4a4f922e…

               13
COMMIT
tree   4df3bb723…
parent aee87dc6a…
author
     Joe Dev <joe@acme.com>
     2009-04-03 13:45 -0600
committer
     Zack Fu <zack@acme.com>
     2009-04-07 09:03 -0800

Added ability to pay with
international credit cards…

             1,082 bytes

         cbc72a29fd…
                14
TAG
type    commit
object cbc72a29fd…
name    v1.9.23
tagger
     Zack Fu <zack@acme.com>
     2009-04-06 17:56 -0800

This release contains the
improvements made to…

              221 bytes

          836dd4aa…
                15
Git Object
  Model

             16
commit: cbc72a29…




            tree: 61bcb4a4…



tree: 8e6ac483…               d56210fe…




ca579aa3…                     ef49a6c6…


                                  17
commit: cbc72a29…                       commit: b3a90c64…
                                parent


            tree: 61bcb4a4…               tree: 4d5fee12…



tree: 8e6ac483…               d56210fe…              tree: 385de46a…




ca579aa3…                     ef49a6c6…                       37bf5ee1…


                                  18
working directory                  index                   master




                    git add                git commit

                                                git push




                                                        origin/master

                              19
*D
            F

    E           E             E            E

D           D            D
    C           C             C            C

B           B            B             B


A           A            A             A


    MERGE                    REBASE



                    20
Gitting
Getting
to work

           21
SHA fragment                         Remote name

git cat-file commit a6ed              git log origin/master
                                      git log refs/remotes/origin/master




 Branch name                             Tag name
git log some-branch                   git log v2.2.5
git log refs/heads/some-branch        git log refs/tags/v2.2.5




                                 22
By date                                Caret parent

git ls-tree "master@{3 days ago}"         git ls-tree my-branch^
git ls-tree master@{yesterday}            git ls-tree my-branch^2
git ls-tree master@{2009-04-22}           git ls-tree my-branch^^^^




 By sequence                               Tilde parent
git ls-tree master@{3}                    git ls-tree my-branch~3 [^^^]




                         git ls-tree master~3^2~4

                                    23
Natural
                        dev2




          dev1

                               dev4



                      dev3




                 24
Central Repo                 dev2




         dev1
                            shared


                                     dev4


                dev3


                       25
Benevolent
                         blessed
Dictator     dev1
                                                   boss




             dev2                  lead1



             dev3

                                           lead2
             dev4
                    26
Integration           dev1          dev1'

Manager

              boss'          boss




   dev2       dev2'                         dev3   dev3'




                              27
GitHub:
Social Forking

             28
29
(see you next month to learn more about Fluent NHibernate)

                           30

Weitere ähnliche Inhalte

Was ist angesagt?

Basic shell commands by Jeremy Sanders
Basic shell commands by Jeremy SandersBasic shell commands by Jeremy Sanders
Basic shell commands by Jeremy SandersDevanand Gehlot
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Praguetomasbart
 
Sample Build Automation Commands
Sample Build Automation CommandsSample Build Automation Commands
Sample Build Automation CommandsJoseph Dante
 
Linux Kernel 개발참여방법과 문화 (Contribution)
Linux Kernel 개발참여방법과 문화 (Contribution)Linux Kernel 개발참여방법과 문화 (Contribution)
Linux Kernel 개발참여방법과 문화 (Contribution)Ubuntu Korea Community
 
Linux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyLinux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyNugroho Gito
 
Postgresql on NFS - J.Battiato, pgday2016
Postgresql on NFS - J.Battiato, pgday2016Postgresql on NFS - J.Battiato, pgday2016
Postgresql on NFS - J.Battiato, pgday2016Jonathan Battiato
 
GlusterFS Basics for OpenStack
GlusterFS Basics for OpenStackGlusterFS Basics for OpenStack
GlusterFS Basics for OpenStackCody Hill
 
Software Packaging for Cross OS Distribution
Software Packaging for Cross OS DistributionSoftware Packaging for Cross OS Distribution
Software Packaging for Cross OS DistributionJian-Hong Pan
 
Working with core dump
Working with core dumpWorking with core dump
Working with core dumpThierry Gayet
 
Redhat 6 & 7
Redhat 6 & 7Redhat 6 & 7
Redhat 6 & 7r9social
 
Basic linux commands for bioinformatics
Basic linux commands for bioinformaticsBasic linux commands for bioinformatics
Basic linux commands for bioinformaticsBonnie Ng
 
Redis深入浅出
Redis深入浅出Redis深入浅出
Redis深入浅出ruoyi ruan
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic CommandsHanan Nmr
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zeroSoheilSabzevari2
 
On cassandra's evolution @ Berlin buzzwords
On cassandra's evolution @ Berlin buzzwordsOn cassandra's evolution @ Berlin buzzwords
On cassandra's evolution @ Berlin buzzwordspcmanus
 
NDMPCOPY lun from 7-mode NetApp to cDOT
NDMPCOPY lun from 7-mode NetApp to cDOTNDMPCOPY lun from 7-mode NetApp to cDOT
NDMPCOPY lun from 7-mode NetApp to cDOTAshwin Pawar
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiJian-Hong Pan
 
Basic linux commands
Basic linux commands Basic linux commands
Basic linux commands Raghav Arora
 

Was ist angesagt? (20)

Linux And perl
Linux And perlLinux And perl
Linux And perl
 
Basic shell commands by Jeremy Sanders
Basic shell commands by Jeremy SandersBasic shell commands by Jeremy Sanders
Basic shell commands by Jeremy Sanders
 
Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Sample Build Automation Commands
Sample Build Automation CommandsSample Build Automation Commands
Sample Build Automation Commands
 
Linux Kernel 개발참여방법과 문화 (Contribution)
Linux Kernel 개발참여방법과 문화 (Contribution)Linux Kernel 개발참여방법과 문화 (Contribution)
Linux Kernel 개발참여방법과 문화 (Contribution)
 
Linux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of TechnologyLinux Survival Kit for Proof of Concept & Proof of Technology
Linux Survival Kit for Proof of Concept & Proof of Technology
 
Postgresql on NFS - J.Battiato, pgday2016
Postgresql on NFS - J.Battiato, pgday2016Postgresql on NFS - J.Battiato, pgday2016
Postgresql on NFS - J.Battiato, pgday2016
 
GlusterFS Basics for OpenStack
GlusterFS Basics for OpenStackGlusterFS Basics for OpenStack
GlusterFS Basics for OpenStack
 
Software Packaging for Cross OS Distribution
Software Packaging for Cross OS DistributionSoftware Packaging for Cross OS Distribution
Software Packaging for Cross OS Distribution
 
Working with core dump
Working with core dumpWorking with core dump
Working with core dump
 
Redhat 6 & 7
Redhat 6 & 7Redhat 6 & 7
Redhat 6 & 7
 
Basic linux commands for bioinformatics
Basic linux commands for bioinformaticsBasic linux commands for bioinformatics
Basic linux commands for bioinformatics
 
Redis深入浅出
Redis深入浅出Redis深入浅出
Redis深入浅出
 
Linux Basic Commands
Linux Basic CommandsLinux Basic Commands
Linux Basic Commands
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zero
 
Putting some "logic" in LVM.
Putting some "logic" in LVM.Putting some "logic" in LVM.
Putting some "logic" in LVM.
 
On cassandra's evolution @ Berlin buzzwords
On cassandra's evolution @ Berlin buzzwordsOn cassandra's evolution @ Berlin buzzwords
On cassandra's evolution @ Berlin buzzwords
 
NDMPCOPY lun from 7-mode NetApp to cDOT
NDMPCOPY lun from 7-mode NetApp to cDOTNDMPCOPY lun from 7-mode NetApp to cDOT
NDMPCOPY lun from 7-mode NetApp to cDOT
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry Pi
 
Basic linux commands
Basic linux commands Basic linux commands
Basic linux commands
 

Andere mochten auch

الدرس الرابع: عمليات خدمة المحصول
الدرس الرابع: عمليات خدمة المحصولالدرس الرابع: عمليات خدمة المحصول
الدرس الرابع: عمليات خدمة المحصولUniv-Constantine1
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training reportarnab das
 
CSHons_FinalPaper_MLNZAC001
CSHons_FinalPaper_MLNZAC001CSHons_FinalPaper_MLNZAC001
CSHons_FinalPaper_MLNZAC001Zac Melnick
 
4 techniques of translation
4 techniques of translation4 techniques of translation
4 techniques of translationphu sql
 
Bienvenidos 3
Bienvenidos 3 Bienvenidos 3
Bienvenidos 3 Adrian AG
 
Resume_Milind_Dhake
Resume_Milind_DhakeResume_Milind_Dhake
Resume_Milind_DhakeMilind Dhake
 
Proven Techniques for Test and Assessment Translation and Adaptation!
Proven Techniques for Test and Assessment Translation and Adaptation!Proven Techniques for Test and Assessment Translation and Adaptation!
Proven Techniques for Test and Assessment Translation and Adaptation!Ken Clark
 
E purchasing technology drives new economics for commerce
E purchasing technology drives new economics for commerceE purchasing technology drives new economics for commerce
E purchasing technology drives new economics for commerceSAP Ariba
 
Escritorio de marcas
Escritorio de marcasEscritorio de marcas
Escritorio de marcasAdrian AG
 
Universidad yacambú ingles tema3
Universidad yacambú ingles tema3Universidad yacambú ingles tema3
Universidad yacambú ingles tema3Dailis15
 
ePurchasing Technology Drives New Economics for Commerce - Forrester
ePurchasing Technology Drives New Economics for Commerce - ForresterePurchasing Technology Drives New Economics for Commerce - Forrester
ePurchasing Technology Drives New Economics for Commerce - ForresterSAP Ariba
 
October Policy Talks_V1
October Policy Talks_V1October Policy Talks_V1
October Policy Talks_V1Sheela Na Cao
 
CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...
CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...
CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...StampedeCon
 
It is Time for the Supernatural!
It is Time for the Supernatural!It is Time for the Supernatural!
It is Time for the Supernatural!Oral Hazell
 
Social Selling - Linked In Dave Anderson
Social Selling - Linked In Dave AndersonSocial Selling - Linked In Dave Anderson
Social Selling - Linked In Dave AndersonDynatrace
 
Magic and religion lecture
Magic and religion lectureMagic and religion lecture
Magic and religion lecturejennifercoe
 

Andere mochten auch (19)

الدرس الرابع: عمليات خدمة المحصول
الدرس الرابع: عمليات خدمة المحصولالدرس الرابع: عمليات خدمة المحصول
الدرس الرابع: عمليات خدمة المحصول
 
resume
resumeresume
resume
 
Industrial training report
Industrial training reportIndustrial training report
Industrial training report
 
CSHons_FinalPaper_MLNZAC001
CSHons_FinalPaper_MLNZAC001CSHons_FinalPaper_MLNZAC001
CSHons_FinalPaper_MLNZAC001
 
4 techniques of translation
4 techniques of translation4 techniques of translation
4 techniques of translation
 
CQRS In An Hour Or So
CQRS In An Hour Or SoCQRS In An Hour Or So
CQRS In An Hour Or So
 
Bienvenidos 3
Bienvenidos 3 Bienvenidos 3
Bienvenidos 3
 
Presentation 5.4
Presentation 5.4 Presentation 5.4
Presentation 5.4
 
Resume_Milind_Dhake
Resume_Milind_DhakeResume_Milind_Dhake
Resume_Milind_Dhake
 
Proven Techniques for Test and Assessment Translation and Adaptation!
Proven Techniques for Test and Assessment Translation and Adaptation!Proven Techniques for Test and Assessment Translation and Adaptation!
Proven Techniques for Test and Assessment Translation and Adaptation!
 
E purchasing technology drives new economics for commerce
E purchasing technology drives new economics for commerceE purchasing technology drives new economics for commerce
E purchasing technology drives new economics for commerce
 
Escritorio de marcas
Escritorio de marcasEscritorio de marcas
Escritorio de marcas
 
Universidad yacambú ingles tema3
Universidad yacambú ingles tema3Universidad yacambú ingles tema3
Universidad yacambú ingles tema3
 
ePurchasing Technology Drives New Economics for Commerce - Forrester
ePurchasing Technology Drives New Economics for Commerce - ForresterePurchasing Technology Drives New Economics for Commerce - Forrester
ePurchasing Technology Drives New Economics for Commerce - Forrester
 
October Policy Talks_V1
October Policy Talks_V1October Policy Talks_V1
October Policy Talks_V1
 
CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...
CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...
CouchDB at its Core: Global Data Storage and Rich Incremental Indexing at Clo...
 
It is Time for the Supernatural!
It is Time for the Supernatural!It is Time for the Supernatural!
It is Time for the Supernatural!
 
Social Selling - Linked In Dave Anderson
Social Selling - Linked In Dave AndersonSocial Selling - Linked In Dave Anderson
Social Selling - Linked In Dave Anderson
 
Magic and religion lecture
Magic and religion lectureMagic and religion lecture
Magic and religion lecture
 

Ähnlich wie Git Without Puns

GIT rozproszony system kontroli wersji
GIT rozproszony system kontroli wersjiGIT rozproszony system kontroli wersji
GIT rozproszony system kontroli wersji3camp
 
Gitting It Under (Version) Control
Gitting It Under (Version) ControlGitting It Under (Version) Control
Gitting It Under (Version) Controlmobiledevnj
 
Introducción a git y GitHub
Introducción a git y GitHubIntroducción a git y GitHub
Introducción a git y GitHubLucas Videla
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdockerJaehwa Park
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With GitHoffman Lab
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlBecky Todd
 
slides.pdf
slides.pdfslides.pdf
slides.pdfvidsvagi
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICLa FeWeb
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopAll Things Open
 
Learning Git with Workflows
Learning Git with WorkflowsLearning Git with Workflows
Learning Git with WorkflowsMosky Liu
 

Ähnlich wie Git Without Puns (20)

M.Mozūras - git
M.Mozūras - gitM.Mozūras - git
M.Mozūras - git
 
GIT rozproszony system kontroli wersji
GIT rozproszony system kontroli wersjiGIT rozproszony system kontroli wersji
GIT rozproszony system kontroli wersji
 
Gitting It Under (Version) Control
Gitting It Under (Version) ControlGitting It Under (Version) Control
Gitting It Under (Version) Control
 
Introducción a git y GitHub
Introducción a git y GitHubIntroducción a git y GitHub
Introducción a git y GitHub
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Git in action
Git in actionGit in action
Git in action
 
Docker 활용법: dumpdocker
Docker 활용법: dumpdockerDocker 활용법: dumpdocker
Docker 활용법: dumpdocker
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With Git
 
T3dd10 git
T3dd10 gitT3dd10 git
T3dd10 git
 
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
 
Git the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version controlGit the Docs: A fun, hands-on introduction to version control
Git the Docs: A fun, hands-on introduction to version control
 
slides.pdf
slides.pdfslides.pdf
slides.pdf
 
slides.pdf
slides.pdfslides.pdf
slides.pdf
 
Git使用
Git使用Git使用
Git使用
 
That's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETICThat's (g)it! par Sébastien Dawans CETIC
That's (g)it! par Sébastien Dawans CETIC
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub Workshop
 
390a gitintro 12au
390a gitintro 12au390a gitintro 12au
390a gitintro 12au
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Learning Git with Workflows
Learning Git with WorkflowsLearning Git with Workflows
Learning Git with Workflows
 
簡單介紹git
簡單介紹git簡單介紹git
簡單介紹git
 

Kürzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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 CVKhem
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Git Without Puns

  • 1. --- +++ Chicago ALT.NET June 10th 2009 Sergio Pereira sergio@sergiopereira.com http://sergiopereira.com/blog @sergiopereira 1
  • 2. Linux kernel development Linus Torvalds, mid-2005 Replaces BitKeeper Perl  C 2
  • 3. msysGit: wizard-style installer installer or macports packaged (apt, yum, rpm) 3
  • 6. 6
  • 7. 1st class citizens Local or remote Low ceremony No politics, no conventions Branch, branch, branch 7
  • 8. Download deltas Local merge (fast) No magic for conflicts Tracks change authors and committer 8
  • 9. • HTTP, HTTPS • GIT • File system • SSH • rsync • patch files ;) 9
  • 10. .git Git Object directory commands database Repository Compression High level (porcelain) Encryption Configuration Blobs References Trees Low level Commits (plumbing) Hooks Tags 10
  • 11. • Secure Hash Algorithm • Global identity • Authenticity da9973c6f9600d90e64aac647f3ed22dfd692f70 11
  • 12. BLOB using System.IO; public class Whatever { // … } 5,811 bytes d56210fee9133… 12
  • 13. TREE blob web.config 4df3bb723… blob global.asax aee87dc6a… tree bin d1c4a7220… tree images 6f32f4409… … 301 bytes 61bcb4a4f922e… 13
  • 14. COMMIT tree 4df3bb723… parent aee87dc6a… author Joe Dev <joe@acme.com> 2009-04-03 13:45 -0600 committer Zack Fu <zack@acme.com> 2009-04-07 09:03 -0800 Added ability to pay with international credit cards… 1,082 bytes cbc72a29fd… 14
  • 15. TAG type commit object cbc72a29fd… name v1.9.23 tagger Zack Fu <zack@acme.com> 2009-04-06 17:56 -0800 This release contains the improvements made to… 221 bytes 836dd4aa… 15
  • 16. Git Object Model 16
  • 17. commit: cbc72a29… tree: 61bcb4a4… tree: 8e6ac483… d56210fe… ca579aa3… ef49a6c6… 17
  • 18. commit: cbc72a29… commit: b3a90c64… parent tree: 61bcb4a4… tree: 4d5fee12… tree: 8e6ac483… d56210fe… tree: 385de46a… ca579aa3… ef49a6c6… 37bf5ee1… 18
  • 19. working directory index master git add git commit git push origin/master 19
  • 20. *D F E E E E D D D C C C C B B B B A A A A MERGE REBASE 20
  • 22. SHA fragment Remote name git cat-file commit a6ed git log origin/master git log refs/remotes/origin/master Branch name Tag name git log some-branch git log v2.2.5 git log refs/heads/some-branch git log refs/tags/v2.2.5 22
  • 23. By date Caret parent git ls-tree "master@{3 days ago}" git ls-tree my-branch^ git ls-tree master@{yesterday} git ls-tree my-branch^2 git ls-tree master@{2009-04-22} git ls-tree my-branch^^^^ By sequence Tilde parent git ls-tree master@{3} git ls-tree my-branch~3 [^^^] git ls-tree master~3^2~4 23
  • 24. Natural dev2 dev1 dev4 dev3 24
  • 25. Central Repo dev2 dev1 shared dev4 dev3 25
  • 26. Benevolent blessed Dictator dev1 boss dev2 lead1 dev3 lead2 dev4 26
  • 27. Integration dev1 dev1' Manager boss' boss dev2 dev2' dev3 dev3' 27
  • 29. 29
  • 30. (see you next month to learn more about Fluent NHibernate) 30