• Like
  • Save
Git for Windows
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Git for Windows


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 …

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Git for WindowsOrlando 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 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. 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
  • 9. Storage Model
  • 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 - 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. Operations Flow - Local
  • 15. Operations Flow - Merging$ git merge origin
  • 16. Operations Flow - Rebasing$ git rebase origin
  • 17. Operations Flow - Cherry-picking$ git cherry-pick C3
  • 18. Windows Setup
  • 19. Configuration BasicsHierarchical System wide Per User Per ProjectCommon Settings • Identity - Name + Email • Ignored files • End of line settings
  • 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. 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. Clients - Have you ? SmartGit - http://www.syntevo.com/smartgit/index.html
  • 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. 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. Clients - Exciting* Visual Studio Tools for Git - bit.ly/vstools4git 2012 Update 2 (CTP) SourceTree - www.sourcetreeapp.com Mac only Windows Private Beta
  • 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. ReferencesVisual Studio Tools for Git, MSDNGit Extensions, Henk WesthuisGit-TF, CodePlexGit Presentations, Steve ChaconPro Git Book, Steve ChaconPragmatic Guide to Git, Travis Swicegood
  • 28. ResourcesOfficial DocumentationProGit.orgGitMagicGitReady.comGitRef.orgVersion Control by ExampleVisual Git ReferenceTry Git
  • 29. Questions ? Ovidiu Dimulescu @odimulescu speakerdeck.com/odimulescu