Upload
stacy-vicknair
View
1.087
Download
0
Embed Size (px)
DESCRIPTION
This speech aims to provide the basics of git, integrating with GitHub and TFS on the Windows platform.
Citation preview
Git’in on WindowsAn introduction to git on the
Microsoft platform
About MeStacy Vicknair, MVP MCPDDevelopment Consultant for Sparkhound
Blog - http://www.wtfnext.comBRAG - http://www.braglunch.comTM - http://www.batonrougespeaks.com
Twitter: @svicknEmail: [email protected]
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
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
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
Who’s git’in it
• The Linux Kernel• Google for the Android OS• Ruby on Rails• PostgreSQL• Eclipse• Perl• Codeplex• … Git.
Why (or why not) choose git?
Pros• Free• Distributed (self replicating)• Lightweight• Secure via SSH / HTTPS• Changeset driven• Easy branching / merging• Disconnected check-ins
*based on Clearvision White Paper
Cons• Windows Second-Class• Barrier to entry• Different permissions
paradigm• It’s not ALM, just DVCS• Single repo management
– Google’s Repo
Where do I git it?(see what I did there)
githttp://git-scm.com/
msysgitGit for Windowshttp://code.google.com/p/msysgit/
posh-gitGit extensions for Powershellhttps://github.com/dahlbyk/posh-git
git-tfsAllows for TFS access via git https://github.com/git-tfs/git-tfs
GitExtensionsGUI / Explorer and VS integration for Windowshttp://code.google.com/p/msysgit/
gitflowGit extensions for high level branch process workflowhttps://github.com/nvie/gitflow
Git’in the BasicsOm nom nom knowledge
Git Basics: Ground level
git init – Create a repogit add – Stage files in the indexgit commit – Commit a filegit status – List current modificationsgit log – List of checkin history
Git Basics: Stash, Branch and Merge
git stash – Hold changes for later retrievalgit branch – Create, delete and list branchesgit checkout – Switch branchesgit rebase – Rebase branch from parentgit merge – Merge from child branch
Git Intermediates: Repo Administration
Images from http://whygitisbetterthanx.com
Git Intermediates: Repo Administration
Git Intermediates: Repo Administration
Git Intermediates: Repo Administration
Git’in against GitHubyeehaw
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
Git’in against TFSMoo.
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
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
ResourcesTutorialshttp://progit.orghttp://book.git-scm.com/
Downloadshttp://git-scm.com/http://code.google.com/p/msysgit/https://github.com/dahlbyk/posh-githttps://github.com/git-tfs/git-tfshttp://code.google.com/p/msysgit/https://github.com/nvie/gitflow
Presentation Resourceshttp://stackoverflow.com/questions/4140133/how-does-tfss-shelveset-model-compare-to-a-dvcshttp://haacked.com/archive/2011/12/19/get-git-for-windows.aspxhttp://nathanj.github.com/gitguide/tour.htmlhttp://www.clearvision-cm.com/whitepapers/Clearvision%20-%20Git%20White%20Paper.pdfhttp://whygitisbetterthanx.com
[email protected]@svickn