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

Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024Stephanie Beckett
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfFIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKUXDXConf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024TopCSSGallery
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 

Recently uploaded (20)

Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 

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