Transitioning to Git
with Scott Chacon
Git is a distributed version control system (DVCS) that's fast, flexible, and modern. It's rapidly gaining popularity in the open source and corporate worlds. Git's popularity is for good reason: it helps developers become more productive and efficient. And that translates into short and long-term business gains across your projects.
Make a quick and smooth transition to Git in this 2-day, hands-on training course for your team.
- Learn how to use Git from the most basic commands to some of the most advanced techniques.
- Take advantage of local branching and easy merging to streamline your development process.
- Gain hands-on experience with Git so you become more confident and effective using this powerful tool on your project.
- Get the most out of Git by learning tips and tricks directly from a professional developer of a popular Git hosting site.
What Will I Learn?
How to use Git effectively. Through a series of guided instruction, hands-on exercises, and discussion, you'll learn how to use Git like the pros. Topics include:
- Basic Git Usage: You'll use a handful of Git commands on a daily basis to initialize repositories, stage and commit changes, manage files, and review previous changes. In many cases, these commands are similar to your other source control system, but Git has some surprises.
- Understanding and Using Branches: Git supports powerful local branching and easy merging that encourages non-linear workflows. You need to really understand branching to use Git well. You'll learn how to create branches, merge changes, handle merge conflicts, track changes with tags, and manage branches over time.
- Working in a Distributed Environment: Whether you're collaborating on an open source project or working on a company team, you'll need to interact with remote repositories. Learn how to push and pull changes, traverse history, stage changes in bulk, and add annotations.
- Git Internals: To really get the most out of Git, you need to understand a little about what's going on under the hood. That way you'll not just know how to do something, but also why it works and how to diagnose problems. You'll learn about basic object types and how/where Git stores those objects.
- Advanced Techniques: Beyond the everyday commands that you may already be familiar with, Git has an impressive set of power-user commands without equal in most source control systems. These commands can save hours of work when used properly. Learn how to take advantage of rebasing, reverting, revision selection, history modification, cherry-picking, and stashing.
- Workflows: Learn different ways you can streamline the flow of code through your organization using Git's agility and power.
- Git Server: If you choose to manage your own Git server, you'll learn how to get everything set up and the pros and cons of each protocol.
- Git Administration: Git needs a little help once in a while to keep things working smoothly. Learn about garbage collection, fsck, and recovering from errors and corruption.
Who’s It For?
Development Teams. This course is for any team interested in switching to Git from another source control system, or any team just getting started with source control. We can customize the course to include any level of basic, intermediate, or advanced usage.
Basic knowledge of Subversion or Perforce basics is assumed, but previous SCM knowledge is not strictly necessary. The team should have some basic idea of their workflows and use cases so good questions can be addressed during the course as to how Git will work best in those situations.
Who Teaches the Course?
Scott Chacon is a Git evangelist and Ruby developer employed at Logical Awesome working on GitHub. He is the author of the book Pro Git and the Git Internals PDF, as well as the maintainer of http://git-scm.com and the Git Community Book.
Scott has presented at RailsConf, RubyConf, Google, and a number of local groups in addition to teaching corporate training on Git across the country.
What Do I Need?
This course is taught on site at your location. As such, you'll need the following:
- a room to comfortably accommodate your team
- a laptop projector and screen
- a whiteboard or flipchart with markers
- laptops (or desktops) on which each attendee can complete the hands-on exercises, and access rights on those machines to install the required software
