Successfully reported this slideshow.

Git for Windows

5

Share

Loading in …3
×
1 of 30
1 of 30

Git for Windows

5

Share

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.

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.

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Git for Windows

  1. 1. Git for Windows Orlando 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 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. 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 - 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
  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 Basics Hierarchical System wide Per User Per Project Common 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 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
  24. 24. 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
  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. 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
  28. 28. Resources Official Documentation ProGit.org GitMagic GitReady.com GitRef.org Version Control by Example Visual Git Reference Try Git
  29. 29. Questions ? Ovidiu Dimulescu @odimulescu speakerdeck.com/odimulescu

×