A Crash Course in
Version Control and Git
Warren Frame
Agenda
About Me
What do I do? Where to find me
• Sr. Systems Engineer, Rochester Regional Health [Link]/PSCookieMonster
• Design and build solutions, learn, share [Link]/in/Wframe
• Other Pursuits:
Science, Infosec
[Link]
Tech, Cooking
Tennis, Family [Link]/RamblingCookieMonster
PowerShell Slack Community
Goals
• Use version control for your own projects
• Foundation to contribute to Microsoft's DSC Resources on GitHub
• Background to make a case to bring version control to your team at $Work
• Become a Git Pro!
What is Version Control?
• System to manage changes to files
o Who vors
o When April 17
o What Files and differential
o (Sometimes) Why To fix Pester tests
• Why use it?
o Revert to or review prior changes
o Maintain multiple versions
o Compare differences
o Share and collaborate
o Modern solutions might assume you have it!
• Infrastructure-as-code
• Continuous Integration and Delivery
o Google around for many more reasons!
AKA Revision Control, Source Control
Version Control Systems
• Centralized
o Work directly against a central server
o Subversion, CVS, Perforce, etc.
• Distributed
o Work locally, optionally push to remote repositories
o Git, Mercurial (Hg), etc.
• Hosted solutions
o GitHub, BitBucket, Visual Studio Online, etc.
• On-Premise solutions
o GitHub Enterprise, Stash, Team Foundation Server, etc.
[Link]
Terminology
• Nope nope nope
Exploring and Using GitHub
• Demo!
Command Line Git
• Demo!
Further Reading
There’s a lot out there. Here are some highlights. Don’t be intimidated, you don’t need all this, but it may come in handy if you want to dive a bit
deeper into the weeds. The key is starting to use it, just like PowerShell!
• Interactive guides
o GitHub’s interactive guide – Learn Git in 15 minutes: [Link]
o Learn Git Branching: [Link]
o Interactive Cheat sheet: [Link]
• References
o Official git reference: [Link]
o Pro Git (free!): [Link] - the first two or three chapters are a great intro
o Understanding Branches: [Link]
o Git Explained: For Beginners: [Link]
o GitHub Flow – GitHub from a Browser: [Link]
• Contributing to Microsoft’s DSC Resources on GitHub
o Guide to getting started with GitHub: [Link]
o DSC Contributions guide: [Link]
o DSC Resource Style Guidelines: [Link]
• More references
o Pro Git (free!): [Link] - the rest of the book : )
o A Visual Git Reference: [Link]
o Git From the Inside Out: [Link]
o Git For Computer Scientists: [Link] - Great read with pictures, don’t be intimidated by the title
o Branching, forking, other concepts explained: [Link]
• Oh shoot, something went wrong!
o So you have a mess on your hands workflow: [Link]
o How to undo (almost) anything with Git: [Link]
• A few recent articles:
o Git Disciplined: [Link] - Thanks for sharing Steve!
o Git for IT Professionals: Getting Started: [Link] - Thanks to Ravikanth! More to come in this series