Expert Led Training Courses
About Jfokus Training:
Get taught directly by the experts and interact with peers in an engaging informal environment. These are intensive, deep dive training sessions designed for advanced IT professionals which incorporate expert-led presentations.

Git Two Day Workshop

Matthew McCullough will guide you from the basics through advanced usage of Git in two days of lecture, discussion, and many hands-on exercises. Since Git can be quite different than a centralized version control system, Matthew will map the terminology onto Git's more collaborative version control vocabulary and put each new term into practice with demos and comparisons.

Matthew McCullough

Matthew McCullough

Matthew McCullough is an energetic 15 year veteran of enterprise software development, open source education, and co-founder of Ambient Ideas, LLC, a Denver consultancy. Matthew currently is a member of the JCP, reviewer for technology publishers, author of the Presentation Patterns & Anti-Patterns book, multi-year speaker on the No Fluff Just Stuff tour, presenter at dozens of international conferences, author of three of the 10 most popular DZone RefCardz (including Git) and President of the Denver Open Source Users Group.

Git has been a primary tool in Matthew's teaching and consulting practice for several years. Matthew's helped small shops to 5,000 person companies convert from proprietary version control systems over to Git, helping them maximize the benefits and minimize efforts. The resulting productivity and collaboration boosts from development teams have been nothing short of amazing.

Matthew resides in Denver with his beautiful wife and two young daughters, who are active in nearly every outdoor activity Colorado offers

 

Git - 2 days workshop

Git is a technology that is best learned through actual use, and at nearly every step of this class you will be typing commands and evaluating what Git is doing both on the surface and at a deep mechanical level. With the mechanics and day-to-day commands mastered, we will advance to discussing Git-facilitated workflow ideas along with practical time-tested tips that will get you on the road to success with this revolutionary source code control system.

This class will help developers on any platform:

  • Understand how Git works and how to apply that to day to day development.
  • Learn the 10 basic commands that will appear in every-day use of Git.
  • Know how to "back out" mistakes using Git's incredible history and ability to revert almost any change.
  • Leverage the collaboration features of Git for productivity boosts with colleagues.
  • Discover how the offline capabilities of Git work "under the hood" and how to use those to work in more places with less reliance on connectivity.

Detailed Course Objectives

What is Git?
  • Why a distributed version control system?
  • How does Git differ from previous VCS systems?

Installing Git
  • The 5 minute litmus test
  • No systemic intrusions
  • Day-to-day commands
  • Three stage thinking
  • Git under the hood: Hashes, DAGs and Treeish
  • A code-and-commit workflow

Git Distributions
  • Building from source
  • Binary distributions
  • Git on Windows

Remotes
  • Multiple destinations for code
  • Refspecs for addressing precisely
  • Adding, removing, and renaming
  • Why are they immutable?

Branching in Git
  • Cheap branches
  • Managing branches
  • Merging code
  • Rebasing: A better merge

Navigating the tree
  • diff
  • ls-tree
  • show

Git Under the Hood
  • Manipulating .gitconfig
  • Alternative visual merge and diff tools
  • Aliases

Workflows
  • Offline sharing
  • Pushing and pulling
  • Commander, lieutenant and soldier
  • Centralized

Tools
  • GUIs and IDEs
  • Web tools
  • Git hosting

Git and Agile
  • Cheap branches enable faster iterations
  • Git's branching model facilitates pairing
  • Point-to-point sharing removes network impediments

Branching Strategies
  • Branch lifetimes: What code belongs where?
  • Long lived branches
  • Integration branches
  • Short lived (topic) branches
  • Naming conventions
  • Merge and rebase techniques from the field