2. About Me
Stacy Vicknair, MVP MCPD
Development Consultant for Sparkhound
Blog - http://www.wtfnext.com
BRAG - http://www.braglunch.com
TM - http://www.batonrougespeaks.com
Twitter: @svickn
Email: stacy.vicknair@sparkhound.com
3. Agenda
• What is git?
• Why (or why not) choose git?
• Where do I git it?
• git’in the basics
• git’in against GitHub
• git’in against TFS
• Resources
4. What is git?
• Distributed Version Control System (DVCS)
– Like TFS’s source control, but “distributed”
• Open Source under GNU LGPL v2.1
• Freely available from http://git-scm.com
5. What is DVCS?
• No true “central repository”
• Not a checkout, it’s a clone
• Check in when you want
• Push to central server when it’s stable
6. Who’s git’in it
• The Linux Kernel
• Google for the Android OS
• Ruby on Rails
• PostgreSQL
• Eclipse
• Perl
• Codeplex
• … Git.
7. Why (or why not) choose git?
Pros Cons
• Free • Windows Second-Class
• Distributed (self replicating) • Barrier to entry
• Lightweight • Different permissions
• Secure via SSH / HTTPS paradigm
• Changeset driven • It’s not ALM, just DVCS
• Easy branching / merging • Single repo management
– Google’s Repo
• Disconnected check-ins
*based on Clearvision White Paper
8. Where do I git it?
(see what I did there)
git GitExtensions
http://git-scm.com/ GUI / Explorer and VS integration for Windows
http://code.google.com/p/msysgit/
msysgit
Git for Windows gitflow
http://code.google.com/p/msysgit/ Git extensions for high level branch process workflow
https://github.com/nvie/gitflow
posh-git
Git extensions for Powershell
https://github.com/dahlbyk/posh-git
git-tfs
Allows for TFS access via git
https://github.com/git-tfs/git-tfs
11. Git Basics: Ground level
git init – Create a repo
git add – Stage files in the index
git commit – Commit a file
git status – List current modifications
git log – List of checkin history
12. Git Basics: Stash, Branch and Merge
git stash – Hold changes for later retrieval
git branch – Create, delete and list branches
git checkout – Switch branches
git rebase – Rebase branch from parent
git merge – Merge from child branch
13. Git Intermediates:
Repo Administration
Images from http://whygitisbetterthanx.com
18. Git’in GitHub: Creating and Cloning
• GitHub requires SSH
• git clone – Copy existing repository locally
• git push - Push changes to a different repo
• git remote – Create, list and delete connected
repos
• git tag – Tags a version of the code
20. Git’in TFS: clone, .gitignore, and checkintool
• .gitignore files help prevent unwanted
checkins
• git tfs clone – Pull TFS repo with history
• git tfs quickclone – No history
• git tfs checkintool – TFS-esque checkin process
• git tfs checkin – Git-esque quick checkin
21. Agenda
• What is git?
• Why (or why not) choose git?
• Where do I git it?
• git’in the basics
• git’in against GitHub
• git’in against TFS
• Resources