Git Going with Comparing, Branching and Merging

Comprehensive, step-by-step guide to Comparing, Branching, Merging and Rebasing in the Git source control system

Git Compre

Git Going with Comparing, Branching and Merging

Are you sure how to compare between commits, branches or the three states of Git? Do merges cause you trouble? What is a rebase, anyway?

In this course, students will walk though comparing (diffs), branching, merging and rebasing in Git. At the end of this course, students will have a firm understanding and experience with those paricular aspects of Git. Note: This is not a comprehensive course on Git — we focus exclusively on comparing, branching, merging, and rebasing.

Recent Course Updates

October 17: Added Updates and Errata section

Course Outline

Course Introduction and Overview provides an introduction to this course.

After the introduction, the first thing we do is Git Installation for both Windows and Mac. There are dedicated sections for Windows and Mac — so students can jump directly to the lectures specifically designed for their system. After the installation process, we will download the example project repository from GitHub (clone) which we will use throughout the course.

After installation and downloading the example project, we explore ways to make Comparisons in Git, including all the different local states, between commits, and between local and remote repositories.

We give great attending to Branching and Merging in Git. We start off with the simple “happy path” and learn about “Fast-Forward” merges and how to control them. The we walk through common “automatic” merges. Finally, we cause trouble on purpose so we can step through resolving conflicting merges with our visual merge tool.

With a strong foundation in branching and merging, we will then cover a more complex topic, Rebasing. In that section, we cover several rebasing examples, including how to resolve a rebase conflict.

All tools have installation and configuration sections to ensure no one is left behind.

Course Features

Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide-presentations are kept to a minimum.

Screencasts provide a video of the instructor’s computer system with any actions, commands, or screens displayed and narrated. There is nearly 2 hours of screencast based video training in order to step through each command or action in sufficient detail.

Special Notes

This course is part of the “Git Going” series and is included with the Git Complete comprehensive course. If you are already enrolled in that course, do not enroll in this course.

This course makes extensive use of the command line. Each command is discussed in detail, so everyone can follow along.

Chapter 1 : Introduction

  • Course Introduction

Chapter 2 : Windows Installation

  • Installation Overview for Windows
  • Git for Windows
  • Notepad++ Install
  • Notepad++ Configuration
  • P4Merge for Windows Install
  • P4Merge for Windows Configuration

Chapter 3 : Mac OS X Installation

  • Installation Overview for Mac OS X
  • Apple Git on Mac OS X (Yosemite and above)
  • TextMate 2 Install
  • TextMate 2 Configuration
  • P4Merge for Mac Install
  • P4Merge for Mac Configuration

26 min.

Chapter 4 : Setup

  • Course Project Repository


Chapter 5 : Comparing in Git

  • Git Repository Setup (for Comparing examples)
  • Comparing Working Directory and the Staging Area
  • Comparing Working Directory and the Git Repository (Last Commit)
  • Comparing Between the Staging Area and the Git Repository (Last Commit)
  • Limiting Comparisons to one File (or Path)
  • Comparing Between Commits
  • Comparing Between Local and Remote Master Branches
  • Comparison Section Cleanup and Push back to GitHub

Chapter 6 : Branching and Merging in Git

  • Branching Basics
  • Happy Path / Fast Forward Merges
  • Happy Path / Disable Fast Forward Merges
  • Automatic Merges
  • Conflicting Merges and Resolution
  • Section Clean up and Push back to GitHub

Chapter 7 : Rebasing in Git

  • Simple Rebase Example
  • Setup a Rebasing Conflict
  • Abort a Rebase
  • Rebase Conflict and Resolution
  • Pull with Rebase (GitHub)
  • Section Cleanup and Push to GitHub

Chapter 8 : Updates and Errata

  • Git Mac OS X Updates

Chapter 9 : Conclusion

  • Review
  • Bonus: Exclusive Student Discounts

Jason Taylor


Jason has over 20 years of software experience and over 5 years working with Git, GitHub, and related tools.

Free Courses

Duis egestas aliquet aliquet. Maecenas erat eros, fringilla et leo eget, viverra pretium nulla. Quisque sed augue tincidunt, posuere dui tempor.

Premium Courses

Duis egestas aliquet aliquet. Maecenas erat eros, fringilla et leo eget, viverra pretium nulla. Quisque sed augue tincidunt, posuere dui tempor.