SlideShare a Scribd company logo
1 of 30
Git for Windows
Orlando Code Camp, 2013




              Ovidiu Dimulescu

              @odimulescu
              speakerdeck.com/odimulescu
Agenda
• SCMs Evolution

• Benefits

• Storage Model

• Repositories Layout

• Operations Flow

• Setup

• Questions?
About @odimulescu
• Working on the Web since 1997

•

• Organizer for JaxMUG.com

• Co-Organizer for Jax Big Data meetup
SCMs Evolution

1st Generation - RCS, SCCS
   •   Single file-based operations
   •   Local only

2nd Generation – CVS, SVN, TFS
  •   Multi-file based operations
  •   Centralized client / server architecture
  •   Merge before commit


3rd Generation – Git, Hg, Bzr, Arch
   •   Multi-file based operations
   •   Decentralized / Distributed architecture
   •   Commit before merge
Trends

• Tendency towards more concurrency

• DVCS get most of the buzz and innovation

     Open Source: Git, Mercurial

     Commercial: Kiln,Veracity, PlasticSCM

• 2nd Gen VCS advances are slowing down

     Last SVN major release took 2 years
Git Benefits - By Marketplace

• Actively developed ecosystem
• Ton of free good docs
• Cool kids are doing it:
• Hosted repos:
• Cross-platform:
• Deployment tool:
• Marketable skill
Git Benefits - For Developers

• Fast (logs, diffs, etc.)

• Facilitates experimentation
   – Fast branch creation and switching

   – Easy merge and re-merge

   – Stashing Commit before merge

• Code artist, driver seat

• Multitasking
?
• Large binaries that change often: games, CAD, etc.
   – git-annex
   – git-media

• Security concerns, entire repository is stored locally

• Extremely large projects, a full local copy is not feasible
   – shallow clones
   – sparse checkouts
   – submodules
   – subtree
Storage Model
Storage Model - Versioning
 Other




 Git
Storage Model - Internals

• Each file revision is stored as a unique BLOB object. The
  object identifier is an SHA-1 hash of its content.

• Git is content-addressable file-system that has a
  notion of versions

• Versions are snapshots of the entire tree

• Object database: BLOBs, TREEs, COMMITs, TAGs
Repositories Layout - Centralized




• Everyone has direct commit access
• Uses a familiar paradigm
• Minimal overhead and bottlenecks
• Works well for most teams
Repositories Layout - Hierarchical




1.   Project maintainer is sole committer to the reference repository
2.   Contributors clone (fork) that repository and makes changes
3.   Contributor commits those changes to their own public copy
4.   Contributor asks the projects maintainer to apply changes
5.   Project maintainer reviews, merges & commits to ref. repository
Operations Flow - Local
Operations Flow - Merging




$ git merge origin
Operations Flow - Rebasing




$ git rebase origin
Operations Flow - Cherry-picking




$ git cherry-pick C3
Windows Setup
Configuration Basics
Hierarchical

  System wide

       Per User

          Per Project

Common Settings

  • Identity - Name + Email
  • Ignored files
  • End of line settings
Configuration Basics - EOL


                                                        Since 1.7.2 - Attributes

                                                          text - on / off
                                                          eol - how


                                                        Pre 1.7.2 - core.autocrlf

                                                          true
                                                          false
                                                          input




* Images Credit: http://blog.subgit.com/tag/autocrlf/
Clients - Gratis

   Official client - git-scm.com
   GitHub for Windows - windows.github.com
   Tortoise Git - code.google.com/p/tortoisegit
   Git Extensions - code.google.com/p/gitextensions
   EGit for Eclipse - www.eclipse.org/egit
   Visual Studio Tools for Git - bit.ly/VvYiak *
   SourceTree - www.sourcetreeapp.com *
Clients - Have you                        ?




 SmartGit - http://www.syntevo.com/smartgit/index.html
Bridges to other VCSes

Git <-> Svn - Built-in

Git <-> TFS - www.git-tfs.com, 3rd Party, Win only

Git <-> TF - gittf.codeplex.com, MS, Java based

Git <-> Hg - hg-git.github.com

Git <-> Perforce - Built-in
Clients - Side by Side
                     CLI, Git-GUI, Gitk
                     Built-in bridges: svn, perforce
Official Git          WinExplorer integration (git-cheetah)
                     Aliases support
                     UI tools limited

                     Easy integration with GitHub
                     All in one installer (Git, Posh-Git)
Github for Windows
                     “Clone in Windows” browser button
                     Dumbed down functionality

                     All in one installer (Git, KDiff3)
                     Visual Studio integration, 2005 - 2012
Git Extensions
                     WinExplorer integration
                     Staging support

                     Good interface
TortoiseGit          WinExplorer integration
                     Hides Git operations
Clients - Exciting*

    Visual Studio Tools for Git - bit.ly/vstools4git
  2012 Update 2 (CTP)


   SourceTree - www.sourcetreeapp.com
  Mac only
  Windows Private Beta
Summary
• Uber fast, full history & versioning locally

• Commit before merge is liberating

• Multi-platform, enables different workflows

• Well documented and integrated

• Marketable skill
References

Visual Studio Tools for Git, MSDN
Git Extensions, Henk Westhuis
Git-TF, CodePlex
Git Presentations, Steve Chacon
Pro Git Book, Steve Chacon
Pragmatic Guide to Git, Travis Swicegood
Resources

Official Documentation
ProGit.org
GitMagic
GitReady.com
GitRef.org
Version Control by Example
Visual Git Reference
Try Git
Questions ?



      Ovidiu Dimulescu

      @odimulescu
      speakerdeck.com/odimulescu

More Related Content

What's hot

Webkit Chromium Contribution Process
Webkit Chromium Contribution ProcessWebkit Chromium Contribution Process
Webkit Chromium Contribution ProcessGyuyoung Kim
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011thkoch
 
Software Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseSoftware Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseHüseyin Ergin
 
Git Everyday
Git EverydayGit Everyday
Git EverydayPerforce
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynSascha Scholz
 
How we use Bitbucket to build Bitbucket
How we use Bitbucket to build BitbucketHow we use Bitbucket to build Bitbucket
How we use Bitbucket to build BitbucketShunsuke (Sean) Osawa
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubScott Graham
 
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and MygetWhy we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and MygetDennis Doomen
 
Getting started with GitHub
Getting started with GitHubGetting started with GitHub
Getting started with GitHubPat Hawks
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14msohn
 
Background info on git / github
Background info on git / githubBackground info on git / github
Background info on git / githubbtopro
 
Google jib: Building Java containers without Docker
Google jib: Building Java containers without DockerGoogle jib: Building Java containers without Docker
Google jib: Building Java containers without DockerMaarten Smeets
 
Adding Container Image Scanning to Your Codefresh Pipelines with Anchore
Adding Container Image Scanning to Your Codefresh Pipelines with AnchoreAdding Container Image Scanning to Your Codefresh Pipelines with Anchore
Adding Container Image Scanning to Your Codefresh Pipelines with AnchoreCodefresh
 

What's hot (20)

Webkit Chromium Contribution Process
Webkit Chromium Contribution ProcessWebkit Chromium Contribution Process
Webkit Chromium Contribution Process
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Software Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and EclipseSoftware Versioning with Bitbucket and Eclipse
Software Versioning with Bitbucket and Eclipse
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
 
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with MylynIntegrating Git, Gerrit and Jenkins/Hudson with Mylyn
Integrating Git, Gerrit and Jenkins/Hudson with Mylyn
 
How we use Bitbucket to build Bitbucket
How we use Bitbucket to build BitbucketHow we use Bitbucket to build Bitbucket
How we use Bitbucket to build Bitbucket
 
Bitbucket and Git
Bitbucket and GitBitbucket and Git
Bitbucket and Git
 
Github PowerPoint Final
Github PowerPoint FinalGithub PowerPoint Final
Github PowerPoint Final
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and MygetWhy we ditched TFS and embraced Git, Github, TeamCity and Myget
Why we ditched TFS and embraced Git, Github, TeamCity and Myget
 
BitBucket presentation
BitBucket presentationBitBucket presentation
BitBucket presentation
 
Gerrit Workshop
Gerrit WorkshopGerrit Workshop
Gerrit Workshop
 
Bitbucket
BitbucketBitbucket
Bitbucket
 
Getting started with GitHub
Getting started with GitHubGetting started with GitHub
Getting started with GitHub
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 
Background info on git / github
Background info on git / githubBackground info on git / github
Background info on git / github
 
GitHub Workflows for Technical Communication
GitHub Workflows for Technical CommunicationGitHub Workflows for Technical Communication
GitHub Workflows for Technical Communication
 
Google jib: Building Java containers without Docker
Google jib: Building Java containers without DockerGoogle jib: Building Java containers without Docker
Google jib: Building Java containers without Docker
 
Adding Container Image Scanning to Your Codefresh Pipelines with Anchore
Adding Container Image Scanning to Your Codefresh Pipelines with AnchoreAdding Container Image Scanning to Your Codefresh Pipelines with Anchore
Adding Container Image Scanning to Your Codefresh Pipelines with Anchore
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 

Similar to Git for Windows

Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForgeCollabNet
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeCollabNet
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-trainingEric Guo
 
Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHubRaiful Hasan
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Gitatishgoswami
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsGorav Singal
 
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
 
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devsITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devsITCamp
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network EngineersJoel W. King
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and GithubWycliff1
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlGiuseppe Masetti
 
Eminence team
Eminence teamEminence team
Eminence teamVivin NL
 
EclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heavenEclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heavenmsohn
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterprisePerforce
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/SESUG
 

Similar to Git for Windows (20)

Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Git Gerrit Mit Teamforge
Git Gerrit Mit TeamforgeGit Gerrit Mit Teamforge
Git Gerrit Mit Teamforge
 
Git SVN Migrate Reasons
Git SVN Migrate ReasonsGit SVN Migrate Reasons
Git SVN Migrate Reasons
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
 
Git
GitGit
Git
 
Basics About Git & GitHub
Basics About Git & GitHubBasics About Git & GitHub
Basics About Git & GitHub
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Learn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levelsLearn Git - For Beginners and Intermediate levels
Learn Git - For Beginners and Intermediate levels
 
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
 
Git basic
Git basicGit basic
Git basic
 
Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devsITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
ITCamp 2013 - Alessandro Pilotti - Git crash course for Visual Studio devs
 
Introduction to Git for Network Engineers
Introduction to Git for Network EngineersIntroduction to Git for Network Engineers
Introduction to Git for Network Engineers
 
Introduction to git and Github
Introduction to git and GithubIntroduction to git and Github
Introduction to git and Github
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version Control
 
Eminence team
Eminence teamEminence team
Eminence team
 
EclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heavenEclipseCon 2010 talk: Towards contributors heaven
EclipseCon 2010 talk: Towards contributors heaven
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
 

More from Ovidiu Dimulescu

Microservices - Yet another buzzword
Microservices - Yet another buzzwordMicroservices - Yet another buzzword
Microservices - Yet another buzzwordOvidiu Dimulescu
 
Threads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java editionThreads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java editionOvidiu Dimulescu
 
Hadoop on Azure, Blue elephants
Hadoop on Azure,  Blue elephantsHadoop on Azure,  Blue elephants
Hadoop on Azure, Blue elephantsOvidiu Dimulescu
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?Ovidiu Dimulescu
 

More from Ovidiu Dimulescu (10)

Microservices - Yet another buzzword
Microservices - Yet another buzzwordMicroservices - Yet another buzzword
Microservices - Yet another buzzword
 
Threads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java editionThreads Needles Stacks Heaps - Java edition
Threads Needles Stacks Heaps - Java edition
 
Journeyman to Master
Journeyman to MasterJourneyman to Master
Journeyman to Master
 
The Rise of DevOps
The Rise of DevOpsThe Rise of DevOps
The Rise of DevOps
 
Hadoop on Azure, Blue elephants
Hadoop on Azure,  Blue elephantsHadoop on Azure,  Blue elephants
Hadoop on Azure, Blue elephants
 
Hadoop, Taming Elephants
Hadoop, Taming ElephantsHadoop, Taming Elephants
Hadoop, Taming Elephants
 
Node.js, toy or power tool?
Node.js, toy or power tool?Node.js, toy or power tool?
Node.js, toy or power tool?
 
HTML5, are we there yet?
HTML5, are we there yet?HTML5, are we there yet?
HTML5, are we there yet?
 
Introduction to Hadoop
Introduction to HadoopIntroduction to Hadoop
Introduction to Hadoop
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 

Recently uploaded

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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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 Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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 DevelopmentsTrustArc
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

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
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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 Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
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...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Git for Windows

  • 1. Git for Windows Orlando Code Camp, 2013 Ovidiu Dimulescu @odimulescu speakerdeck.com/odimulescu
  • 2. Agenda • SCMs Evolution • Benefits • Storage Model • Repositories Layout • Operations Flow • Setup • Questions?
  • 3. About @odimulescu • Working on the Web since 1997 • • Organizer for JaxMUG.com • Co-Organizer for Jax Big Data meetup
  • 4. SCMs Evolution 1st Generation - RCS, SCCS • Single file-based operations • Local only 2nd Generation – CVS, SVN, TFS • Multi-file based operations • Centralized client / server architecture • Merge before commit 3rd Generation – Git, Hg, Bzr, Arch • Multi-file based operations • Decentralized / Distributed architecture • Commit before merge
  • 5. Trends • Tendency towards more concurrency • DVCS get most of the buzz and innovation Open Source: Git, Mercurial Commercial: Kiln,Veracity, PlasticSCM • 2nd Gen VCS advances are slowing down Last SVN major release took 2 years
  • 6. Git Benefits - By Marketplace • Actively developed ecosystem • Ton of free good docs • Cool kids are doing it: • Hosted repos: • Cross-platform: • Deployment tool: • Marketable skill
  • 7. Git Benefits - For Developers • Fast (logs, diffs, etc.) • Facilitates experimentation – Fast branch creation and switching – Easy merge and re-merge – Stashing Commit before merge • Code artist, driver seat • Multitasking
  • 8. ? • Large binaries that change often: games, CAD, etc. – git-annex – git-media • Security concerns, entire repository is stored locally • Extremely large projects, a full local copy is not feasible – shallow clones – sparse checkouts – submodules – subtree
  • 10. Storage Model - Versioning Other Git
  • 11. Storage Model - Internals • Each file revision is stored as a unique BLOB object. The object identifier is an SHA-1 hash of its content. • Git is content-addressable file-system that has a notion of versions • Versions are snapshots of the entire tree • Object database: BLOBs, TREEs, COMMITs, TAGs
  • 12. Repositories Layout - Centralized • Everyone has direct commit access • Uses a familiar paradigm • Minimal overhead and bottlenecks • Works well for most teams
  • 13. Repositories Layout - Hierarchical 1. Project maintainer is sole committer to the reference repository 2. Contributors clone (fork) that repository and makes changes 3. Contributor commits those changes to their own public copy 4. Contributor asks the projects maintainer to apply changes 5. Project maintainer reviews, merges & commits to ref. repository
  • 15.
  • 16. Operations Flow - Merging $ git merge origin
  • 17. Operations Flow - Rebasing $ git rebase origin
  • 18. Operations Flow - Cherry-picking $ git cherry-pick C3
  • 20. Configuration Basics Hierarchical System wide Per User Per Project Common Settings • Identity - Name + Email • Ignored files • End of line settings
  • 21. Configuration Basics - EOL Since 1.7.2 - Attributes text - on / off eol - how Pre 1.7.2 - core.autocrlf true false input * Images Credit: http://blog.subgit.com/tag/autocrlf/
  • 22. Clients - Gratis Official client - git-scm.com GitHub for Windows - windows.github.com Tortoise Git - code.google.com/p/tortoisegit Git Extensions - code.google.com/p/gitextensions EGit for Eclipse - www.eclipse.org/egit Visual Studio Tools for Git - bit.ly/VvYiak * SourceTree - www.sourcetreeapp.com *
  • 23. Clients - Have you ? SmartGit - http://www.syntevo.com/smartgit/index.html
  • 24. Bridges to other VCSes Git <-> Svn - Built-in Git <-> TFS - www.git-tfs.com, 3rd Party, Win only Git <-> TF - gittf.codeplex.com, MS, Java based Git <-> Hg - hg-git.github.com Git <-> Perforce - Built-in
  • 25. Clients - Side by Side CLI, Git-GUI, Gitk Built-in bridges: svn, perforce Official Git WinExplorer integration (git-cheetah) Aliases support UI tools limited Easy integration with GitHub All in one installer (Git, Posh-Git) Github for Windows “Clone in Windows” browser button Dumbed down functionality All in one installer (Git, KDiff3) Visual Studio integration, 2005 - 2012 Git Extensions WinExplorer integration Staging support Good interface TortoiseGit WinExplorer integration Hides Git operations
  • 26. Clients - Exciting* Visual Studio Tools for Git - bit.ly/vstools4git 2012 Update 2 (CTP) SourceTree - www.sourcetreeapp.com Mac only Windows Private Beta
  • 27. Summary • Uber fast, full history & versioning locally • Commit before merge is liberating • Multi-platform, enables different workflows • Well documented and integrated • Marketable skill
  • 28. References Visual Studio Tools for Git, MSDN Git Extensions, Henk Westhuis Git-TF, CodePlex Git Presentations, Steve Chacon Pro Git Book, Steve Chacon Pragmatic Guide to Git, Travis Swicegood
  • 30. Questions ? Ovidiu Dimulescu @odimulescu speakerdeck.com/odimulescu