Introduction
  • Welcome and Course Goals
  • Course Overview
  • About the Author / Instructor
  • Course Audience and Course Study Tips
  • Why Command Line?
  • Why Source Control?
  • Why Git?
  • Key Git Terminology
Git Installation
  • Installation Overview
  • Installing Git for Windows
  • Installing Git on Mac OS X
Git Quick Start
  • Quick Start, Part 1: Starting with GitHub and Project Setup
  • Quick Start, Part 2: Configuration, Clone, and Git Basic Workflow
  • Quick Start Resources
Text Editor Installation
  • Text Editor Installation Overview
  • Windows Text Editor: Notepad++ Installation
  • Configure Notepad++ with Git (Windows Only)
  • Mac Text Editor: TextMate 2 Installation
  • Configure Text Mate 2 with Git (Mac Only)
  • Text Editor Resources
Basic Git Commands
  • Basic Commands Overview
  • Starting with a Fresh Project (git init)
  • Adding Git to an Existing Project (git init)
  • Starting on GitHub by Joining an Existing Project (git clone)
  • Basic Git Workflow (add, commit, pull & push)
  • Tracked Files
  • Editing Files
  • Recursive Add
  • Backing Out Changes
  • Renaming and Moving Files
  • Deleting Files
  • History
  • Git Alias
  • Ignoring Unwanted Files and Folders
  • Cleanup and Back to Origin (GitHub)
  • Git Basics Resources
Visual Merge/Diff Tool Installation
  • Visual Merge / Diff Tool Installation Overview
  • P4Merge Install on Windows
  • P4Merge Configure on Windows
  • P4Merge for Windows Git Configuration
  • P4Merge for Mac Installation
  • P4Merge for Mac Git Configuration
  • Visual Merge / Diff Tool Resources
Comparisons
  • Git Repository Setup (for comparing examples)
  • Comparing Working Directory and the Staging Area
  • Comparing Working Directory and Git Repository (Last Commit)
  • Comparing between the Staging Area and the Git Repository (Last Commit)
  • Limiting Comparsons to one File (or path)
  • Comparing Between Commits
  • Comparing Between Local and Remote Master Branches
  • Comparison Section Cleanup and Push back to GitHub
Branching and Merging
  • Branching Basics
  • Happy Path / Fast Forward Merges
  • Happy Path / Disable Fast Forward Merges
  • Automatic Merges
  • Conflicting Merges and Resolution
  • Section Cleanup and Push back to GitHub
Rebasing
  • Simple Rebase Example
  • Setup for rebasing conflict
  • Abort a Rebase
  • Rebase Conflict and Resolution
  • Pull with Rebase (GitHub)
  • Section Cleanup and push to GitHub
Stashing
  • Simple Stash Example
  • Stashing Untracked Files and Using Pop
  • Managing Multiple Stashes
  • Stashing into a Branch
  • Section Cleanup and push to GitHub
  • Stashing Section Resources
Tagging
  • Simple Tag Example / Lightweight Tags
  • Annotated Tags
  • Comparing Tags
  • Tagging a Specific Commit
  • Updating Tags
  • Using Tags with GitHub
  • Tagging Section Resources
Bonus: Office Hour Sessions
  • Reset and Reflog (Office Hours, Session 1)
  • Compare Branches via GitHub (Office Hours, Session 1)
  • Compare Branches via Command Line (Office Hours, Session 1)
  • Stash vs Branch (Office Hours, Session 1)
  • Gitting Help (Office Hours, Session 1)
  • Cherry Pick (Office Hours, Session 1)
Updates and Errata
  • Git Mac OS X Updates
Bonus: Resources and Special Offers
  • Bonus: Exclusive Student Discounts