Intermediate Git

In this 8 hour course I will take you from being a beginner at Git, or even knowing nothing about Git at all, to being an intermediate Git user. I'll teach you the the correct 'Mental Model' necessary to really understand Git. That will help you understand the documentation better, and enable you to distinguish between the correct answers and the most highly upvoted answers on Stack Overflow. I can teach this course either at my own location on 444 N. Michigan Avenue in Chicago, or at your workplace.


This class is not only for developers. Designers and QA staff will also benefit from it. Only a basic familiarity with computers is required. But if you're a developer, you'll find this class indispensable.

Start Here

No prior knowledge of Git is necessary

A Computer

You must have a laptop (Mac or Linux or Windows) onto which you can install Git

Edit Files

You must know how to edit a simple text file on your computer. Atom, TextEdit, SublimeText, NotePad, BBEdit, vim, pico, and emacs are popular text editors


You should be able to view directories (folders) and their contents on your computer. You may use the command line or a GUI interface like the Finder or Windows Explorer

Course Details:

  • The next course will be held on Wednesday, Dec 14 from 9:00 a.m. to 5:00 p.m.
  • 444 N. Michigan Avenue. Chicago IL 60611
  • You will get one flash drive with all the course slides, examples, aliases, and sample repositories in electronic format
  • You will get a document with common (and some not-so-common) problems along with instructions on how to solve them using Git
  • You will get a membership to a Git-Users Slack channel so that after the class you can ask questions to me, or other students about specific Git issues you might be facing

Course Syllabus

  • Getting Started
    • Intro to Version Control Systems
    • What Makes Git Different
    • Basic Git Workflow
    • First Time Setup
    • Config Files
    • Getting Help
  • Repositories
    • Creating a New Repo
    • Cloning a Remote Repository
    • Lifecycle of Status of File
    • Checking File Status
    • Creating a File
    • Staging a File
    • Short Status
    • Ignoring Files
    • Viewing Changes
    • Optional Advanced Diversion
    • Committing Your Changes
    • Removing a File From Git
    • Viewing History
    • Undoing Things
    • Remote Repositories
    • Tags
  • Branches
    • Creating a new Repo
    • Staging
    • Committing
    • Adding a Second Commit
    • Creating a New Branch
    • Changing Branches
    • Editing a File on a Branch
    • Merging in Our Changes
    • Removing a Branch
    • Merge Conflicts
    • Rebasing
    • Stashes
    • Detached HEAD
  • GitHub & Remote Branches
    • Creating a GitHub Account
    • SSH Setup
    • Remote Branches
    • Origin Divergence
    • Pushing to Remotes
    • Fetching Remote Info
    • Merging in a Remote Branch
    • Deleting Remote Branches
  • Git Tools
    • Reset
    • Checkout
    • Reset from a Detached HEAD
    • Revision Selection
    • Searching
    • Debugging
  • Common Tasks
    • View a File in a Certain Commit
    • Revert a Commit
    • Checkout an older version of a file
    • Squash Multiple Commits
    • Remove a File from the Staging Area
    • Change the Message of the Last Commit
    • Unstaging a File
    • Unmodifying a Modified File
    • Apply a Single Commit to HEAD
    • Cherry-picking a Single File from another Commit
    • Get Rid of 1 or more Commits
    • Get Rid of Stale Remote Refs
    • Quickly View Branch Log
    • Delete Remote Tracking Branches
    • Work with a Private Remote
    • Merge Using a 'theirs' Strategy
  • Git Flow
  • The Shell
  • More GitHub

Your Instructor


The class will be taught by me, (Aijaz Ansari), the author of several popular iOS apps. I have been working professionally as a software developer for 20 years, and have been teaching in one capacity or another on and off for the past 30 years. Most recently, I've spent the last year mentoring 14 students as they start their careers as developers.



This is what our students have said about our previous classes:

"Class was very comprehensive, spent good amount of time on concepts, language structures, development environment, UI designs, and platform advanced features. Classes were recorded for reviews, homeworks were adequate. All in all great value for the money. Highly recommended teacher and content."

"Aijaz is an excellent instructor with a deep background in software development. His lessons were well thought out and prepared with examples and exercises that built upon each other as we progressed. I highly recommend his classes."

"This class helped me return to the workforce after a long absence. Originally a C and Assembly programmer, I was new to iOS, Swift, and Xcode. Mr. Ansari led us through these topics in a clear and efficient manner and also incorporated very helpful and practical info on using Git via challenging exercises and a class project. Mr. Ansari is a knowledgeable and enthusiastic teacher and always takes time to provide assistance to the class. I highly recommend his classes to anyone interested in programming!"

"Aijaz is passionate about what he does and it shows. His breadth of experience and knowledge on the subject, plus his teaching style, made the course both valuable and enjoyable. This far exceeded my expectations and was far more enjoyable than almost all of the training I’ve done to date."

Plans & Pricing

One 8-hour session

$ 350 / student
  • Classes will be held at our location
  • Next class on Dec 14 2016 from 9:00 AM to 5:PM
  • Group rates available for multiple students from the same company.

All classes subject to meeting a minimum number of students requirement of 5.

Register Now

Fill in the form below to register for this class: