Git In-depth
Join us for an Awesome Workshop on:

Git In-depth

October 6, 2017 - 9:30am to 5:30pm Central US Time

Attend Online

Live and in Full HD

Join in Person

From Downtown Minneapolis, MN

You're Registered to Attend Online!

October 6, 2017 - 9:30am to 5:30pm Central US Time

This Workshop's Online Chatroom is Currently Open!

October 6, 2017 - 9:30am to 5:30pm Central US Time

You can watch video of this workshop!

Git In-depth

Some Key Takeaways!

By coding along with us in the Workshop, you'll:

  • Learn how git represents commits and branches internally to gain deep insights into how git works under the hood
  • Discover the power of rebasing in git, along with how to avoid common pitfalls. Learn to tell when it's appropriate to re-write history
  • Discover how git hooks can make your life easier by running analysis on your code before you commit in order to prevent common errors from making their way into your codebase
  • Discover lesser-known features of git that will save you hours of time when resolving merge conflicts and track down bugs…
  • Learn how to harness the power of the GitHub API to fetch information about your repositories. I'll show you how you can simplify and automate workflows when we build a sample application together

Your (Awesome) Instructor

Nina Zakharenko

Nina Zakharenko

Nina Zakharenko is a Cloud Developer Advocate at Microsoft. Previously, she was a Senior Software Engineer at Venmo and a Senior Software Engineer at reddit, working on She’s been a developer for over 8 years, with experience in several programming languages, most recently Python and Javascript. In her spare time, she skis, snowboards, climbs, and mountain bikes from her home base in Park City, UT.

Spend A Full Day Immersed With Nina Zakharenko

Workshop Details

Git In-depth

We'll start by talking about productivity tools that will save time and reduce frustration when working with git repositories. Next, we'll deep dive into areas of git you may already be familiar with, such as the staging area, commits, and branches. I'll explain how these features are implemented under the hood, and how they fit in with the greater philosophy of git. We'll cover what's in the .git/ directory in your projects. Now that you know how these features work, we'll cover common git errors along with concrete examples for fixing common mistakes.

Then, we'll cover forks and remote repositories. We'll discuss merging and rebasing, and the advantages and disadvantages of each approach. I'll explain tips and tricks to make combining, splitting, deleting, or amending commits straightforward and easy to follow. We'll explore commits and talk about the git log before diving into the 'Danger Zone' — what happens when you re-write history and end up losing or overwriting work. We'll move on to advanced features like cherry-picking, advanced stashing, and an example of how powerful git bisect can be.

We'll spend some time talking about customizing your git configuration for maximum productivity. We'll also talk about git commit hooks - scripts you can run before or after events such as commit, push, and receive. We'll go over examples of hooks that you can start using in your own codebase today.

Lastly, we'll spend time covering some of the advanced features of GitHub. We'll discuss how to integrate continuous integration tools like Travis CI into your repository. We'll end class by discussing the GitHub API and how it can be used to simplify and automate your workflows. For our final exercise, we'll demonstrate how to listen to notifications and trigger events, and build a small sample application that makes use of the GitHub API.

Daily Schedule

We've already held over 100 workshops holding thousands attendees in-person and online. In this time we've discovered ways to schedule the day so it goes smoothly and efficiently.

Regardless if you're in-person or participating with us online you'll have the full ability to replay things you missed, get your questions answered LIVE and interact with the teacher throughout the day.

Day 1

  • 9:30AM
    Tech Check and Hello
  • 10:00AM
    Introduction to Git Command Line Productivity Tools
  • 10:15AM
  • 10:30AM
    Staging Area
  • 10:45AM
  • 11:00AM
    Commits under the hood
  • 11:30AM
  • 11:45AM
    Branching, HEAD, and Fast-Forward Commits
  • 12:15PM
  • 12:30PM
    Don't Panic! Troubleshooting Common Mistakes
  • 12:50PM

Day 2

  • 1:00PM
    Lunch and Discussion
  • 2:00PM
    Forks and Remote Repositories
  • 2:20PM
  • 2:30PM
    Merging and Rebasing
  • 3:15PM
  • 3:30PM
    Diffs, History, Re-writing History
  • 4:00PM
    Advanced Tools - Bisecting, Searching, and more
  • 4:30PM
  • 4:45PM
    Customizations - .gitconfig, hooks, and aliases
  • 5:15PM
    GitHub and brief introduction to tools for Continuous Integration
  • 5:30PM
    Working with the Github API
  • 6:00PM
    Final Exercise
  • 6:30PM
    Additional Resources and Wrap-up

Interact with the Instructor - Online & In-Person

Get Your Questions Answered • Code Along with the Class • Classroom Format

Is This Workshop for Me?


This workshop should not be considered an introduction - it is optimized for developers who already use git every day and who understand basic concepts like committing, branching, and forking.

Any Prerequisites?

  • To take full advantage of the class, you'll need to be familiar with basic git functionality and be comfortable with command line basics. To participate in exercises, you'll need git installed on your computer, access to the terminal, and an account on

Event Details


One Full Day Workshop Session

Replay Videos (available immediately)


October 6, 2017 - 9:30am to 5:30pm Central US Time


Option 1: Attend online on our full HD live stream

Option 2: Attend in-person at HQ in Minneapolis, MN