Git for WindowsOrlando Code Camp, 2013              Ovidiu Dimulescu              @odimulescu              speakerdeck.com...
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 Evolution1st Generation - RCS, SCCS   •   Single file-based operations   •   Local only2nd Generation – CVS, SVN, TFS ...
Trends• Tendency towards more concurrency• DVCS get most of the buzz and innovation     Open Source: Git, Mercurial     Co...
Git Benefits - By Marketplace• Actively developed ecosystem• Ton of free good docs• Cool kids are doing it:• Hosted repos:•...
Git Benefits - For Developers• Fast (logs, diffs, etc.)• Facilitates experimentation   – Fast branch creation and switching...
?• Large binaries that change often: games, CAD, etc.   – git-annex   – git-media• Security concerns, entire repository is...
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 ...
Repositories Layout - Centralized• Everyone has direct commit access• Uses a familiar paradigm• Minimal overhead and bottl...
Repositories Layout - Hierarchical1.   Project maintainer is sole committer to the reference repository2.   Contributors c...
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 BasicsHierarchical  System wide       Per User          Per ProjectCommon Settings  • Identity - Name + Email...
Configuration Basics - EOL                                                        Since 1.7.2 - Attributes                 ...
Clients - Gratis   Official client - git-scm.com   GitHub for Windows - windows.github.com   Tortoise Git - code.google.com...
Clients - Have you                        ? SmartGit - http://www.syntevo.com/smartgit/index.html
Bridges to other VCSesGit <-> Svn - Built-inGit <-> TFS - www.git-tfs.com, 3rd Party, Win onlyGit <-> TF - gittf.codeplex....
Clients - Side by Side                     CLI, Git-GUI, Gitk                     Built-in bridges: svn, perforceOfficial G...
Clients - Exciting*    Visual Studio Tools for Git - bit.ly/vstools4git  2012 Update 2 (CTP)   SourceTree - www.sourcetree...
Summary• Uber fast, full history & versioning locally• Commit before merge is liberating• Multi-platform, enables differen...
ReferencesVisual Studio Tools for Git, MSDNGit Extensions, Henk WesthuisGit-TF, CodePlexGit Presentations, Steve ChaconPro...
ResourcesOfficial DocumentationProGit.orgGitMagicGitReady.comGitRef.orgVersion Control by ExampleVisual Git ReferenceTry Git
Questions ?      Ovidiu Dimulescu      @odimulescu      speakerdeck.com/odimulescu
Git for Windows
Upcoming SlideShare
Loading in …5
×

Git for Windows

2,186 views

Published on

Git is omnipresent these days from open source and startups to enterprises. This talk will demystify Git architecture and cover Windows specific integration. We will explore free options like Git Extensions, TortoiseGit, Command Line, GitHub for Windows and Visual Studio Tools for Git. We will also cover using Git as TFS client when you want to take advantages of Git's features but the source repository is TFS.

Published in: Technology
  • Be the first to comment

Git for Windows

  1. 1. Git for WindowsOrlando Code Camp, 2013 Ovidiu Dimulescu @odimulescu speakerdeck.com/odimulescu
  2. 2. Agenda• SCMs Evolution• Benefits• Storage Model• Repositories Layout• Operations Flow• Setup• Questions?
  3. 3. About @odimulescu• Working on the Web since 1997•• Organizer for JaxMUG.com• Co-Organizer for Jax Big Data meetup
  4. 4. SCMs Evolution1st Generation - RCS, SCCS • Single file-based operations • Local only2nd Generation – CVS, SVN, TFS • Multi-file based operations • Centralized client / server architecture • Merge before commit3rd Generation – Git, Hg, Bzr, Arch • Multi-file based operations • Decentralized / Distributed architecture • Commit before merge
  5. 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. 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. 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. 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
  9. 9. Storage Model
  10. 10. Storage Model - Versioning Other Git
  11. 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. 12. Repositories Layout - Centralized• Everyone has direct commit access• Uses a familiar paradigm• Minimal overhead and bottlenecks• Works well for most teams
  13. 13. Repositories Layout - Hierarchical1. Project maintainer is sole committer to the reference repository2. Contributors clone (fork) that repository and makes changes3. Contributor commits those changes to their own public copy4. Contributor asks the projects maintainer to apply changes5. Project maintainer reviews, merges & commits to ref. repository
  14. 14. Operations Flow - Local
  15. 15. Operations Flow - Merging$ git merge origin
  16. 16. Operations Flow - Rebasing$ git rebase origin
  17. 17. Operations Flow - Cherry-picking$ git cherry-pick C3
  18. 18. Windows Setup
  19. 19. Configuration BasicsHierarchical System wide Per User Per ProjectCommon Settings • Identity - Name + Email • Ignored files • End of line settings
  20. 20. 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/
  21. 21. 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 *
  22. 22. Clients - Have you ? SmartGit - http://www.syntevo.com/smartgit/index.html
  23. 23. Bridges to other VCSesGit <-> Svn - Built-inGit <-> TFS - www.git-tfs.com, 3rd Party, Win onlyGit <-> TF - gittf.codeplex.com, MS, Java basedGit <-> Hg - hg-git.github.comGit <-> Perforce - Built-in
  24. 24. Clients - Side by Side CLI, Git-GUI, Gitk Built-in bridges: svn, perforceOfficial 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 - 2012Git Extensions WinExplorer integration Staging support Good interfaceTortoiseGit WinExplorer integration Hides Git operations
  25. 25. Clients - Exciting* Visual Studio Tools for Git - bit.ly/vstools4git 2012 Update 2 (CTP) SourceTree - www.sourcetreeapp.com Mac only Windows Private Beta
  26. 26. Summary• Uber fast, full history & versioning locally• Commit before merge is liberating• Multi-platform, enables different workflows• Well documented and integrated• Marketable skill
  27. 27. ReferencesVisual Studio Tools for Git, MSDNGit Extensions, Henk WesthuisGit-TF, CodePlexGit Presentations, Steve ChaconPro Git Book, Steve ChaconPragmatic Guide to Git, Travis Swicegood
  28. 28. ResourcesOfficial DocumentationProGit.orgGitMagicGitReady.comGitRef.orgVersion Control by ExampleVisual Git ReferenceTry Git
  29. 29. Questions ? Ovidiu Dimulescu @odimulescu speakerdeck.com/odimulescu

×