GitHub Ultimate: Master Git and GitHub – Beginner to Expert

Go from complete novice to expert in Git and GitHub using step-by-step, no-assumptions learning

GitHub Unleashed

This course will comprehensively cover the GitHub hosting service as a companion to the Git source control tool, which means no prior knowledge or experience is required but students will emerge at the end with a very solid understanding and hands-on experience with Git and GitHub.

Course Organization

The course is divided into four major components:

  • Introduction and Setup
  • Learning Git Source Control
  • All About GitHub
  • Bonuses

Each one of the above components spans multiple sections in this course.


The Introduction provides a welcome to the course including some useful tips for getting the most out of taking the course and how the course is designed. That is followed by the Core Concepts which go over some critical theory before diving straight into Git.

After the introduction and core concepts, the first thing we do is a Quick Installation for both Windows and Mac. The Bonus section has a more comprehensive, step-by-step process for those that prefer it.
Learning Git Source Control

In The Basics, we walk through all the foundational commands needed to start a new project managed by Git (or enable Git for an existing project) all the way through making commits, including common file operations like moving and deleting files. We also cover how to exclude the wrong files from accidentally being committed and how to review your repository’s history.

With a strong foundation in place, we explore some more Advanced Git topics like comparing differences, branching and merge resolution, tagging special events, saving work in progress, and even a bit of time travel.
All About GitHub

The main part of this course is all about GitHub. We will explore GitHub indepth from a source control hosting repository perspective.

In Welcome to GitHub we start off exploring some of the basic features of GitHub by creating a fresh repository and associate our local repository with it.

Then, we prepare for the remainder of the course by setting up SSH Authentication, which we will use from this point forward.

After that, we continue looking at the GitHub Repository, including many of the same operations we performed locally, but done directly within GitHub. Then in GitHub Repository Branches we dive into how Branches on GitHub and our local system work with each other.

After we have comprehensively covered how GitHub repositories work, we focus on how GitHub Tags and Releases work and their relationship with local tags in Git. We can then use tags/releases while Comparing Differences on GitHub.

We start tying things together in Social Coding where we join other projects on GitHub by forking and then submitting our contributions back using pull requests. Once part of a team, you might use GitHub Issues to track defects or enhancement requests.

Sometimes you just need to share small parts of a file or a set of files, but don’t want to bother with a full Git repository. That where GitHub Gists help out — share just a snip of code or entire files.

Finally, group related GitHub repositories with GitHub Organizations and manage permissions and access using teams.

The bonuses sections and lectures provide additional information, more comprehensive instructions, or non-critical lectures.

Course Features

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

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 4 hours of screencast based video training in order to step through each command or action in sufficient detail.

Several attachments and document lectures throughout the course provide supplemental information, illustrations, or other reference material.

Moving Forward

This course will expand periodically to include more topics, supporting materials and bonus content! Some content may be in direct response to student feedback or discussions — so get engaged with the course discussions feature!

Chapter 1 : Introduction

  • Course Welcome
  • Objectives
  • Audience and Assumptions
  • Approach (how to take the course)
  • About the Author
  • Starting Command Line: GUI later
  • Command Line Courses Available (see bonus)

Chapter 2 : GitHub Basics


  • What is GitHub
  • Features
  • Profile

  • Create Account
  • Sign Out
  • Sign In
  • Setup Account settings
  • Notifications
  • Profile
  • Basics

  • Sign up for GitHub
  • sign in
  • Create a new Repo (empty)
  • Adding remote / list
  • push -u (tracking branch)
  • validate on GitHub
  • Authentication

  • HTTPS vs SSH
  • SSH Command Line setup
  • Add Key in GitHub
  • Validate Login via SSH

Chapter 3 : Repositories


  • Create Repo (readme, license, ignore)
  • Clone (ssh)
  • populate starter website
  • push simple
  • Pull vs Fetch
  • Pull


  • Navigating the Repository
  • Quick Access view
  • Editing Online
  • Commit Messages / Extended Descriptions
  • Create Files
  • Delete and Rename Files
  • Keeping Local in Sync
  • History and Commits

  • Commits
  • View Commit details
  • Commit diff : unified vs split
  • View Repository as of Commit
  • Copy Commit ID, Use Locally (show)
  • Branches

  • Master
  • Create
  • Create from drop-dow
  • Create on Branches tab
  • Create Locally (push -u)
  • Changing into branch
  • Commiting
  • Pull request
  • Sync up locally
  • checkout a remote branch locally
  • single remote
  • Locally merge
  • Branches tab: Active, stale, etc
  • Deleting
  • Delete on GitHub
  • push :branch-name
  • update referneces: fetch -p
  • Change default branch
  • Pull with rebase
  • Tags and Releases

  • Tag review
  • Tags vs Branches
  • annotated vs lightweight
  • Creating a tag (locally)
  • Push a tag to GitHub
  • Pusing all tags to GitHub
  • Comparing tags to HEAD on GitHub (tag interface)
  • Browsing Repo as of Tag
  • list tags on main dropdown
  • Deleting a Tag on GitHub
  • Updating a Tag on GitHub
  • Tags vs Releases
  • Releases (Create one new GitHub)
  • Release Notes (Add to Existing Tag)
  • Editing Release Notes
  • Delete Release Notes (then tag)
  • Comparing

  • Comparing (Pull Request page)
  • Compare branches
  • Compare tags
  • Compare commits
  • Social Coding

  • Forking a repo
  • Pull Requests
  • Sync up the fork
  • Graphs
  • Contributors
  • Traffic
  • Commits
  • Code frequency
  • Network
  • Members
  • Stars
  • Notifications
  • Collaborators

  • Inviting/adding Collaborators
  • Working with Collaborators
  • Removing Collaborators
  • Chapter 4 : Issue Tracking

    • Overview of GitHub Issues
    • Creating / editing issues
    • Closing Issues
    • Using commit messages to associate and close issues


    Chapter 5 : Gists

    • Overview (what are gists)
    • Create them
    • Use them
    • Modify them
    • Gists as Git repos
    • Delete them

    Chapter 6 : Organizations


    • What are Organizations
    • Individual vs organization
    • Create a new Organization
    • Organization Page / Newfeed
    • Switching Organizations
    • Moving repo to Organization
    • Forking back to Self
    • cannot setup
    • add remote to org repo
    • possible issue with duplicate branch names
    • specify remotes pull and checkout
    • fetch all
    • Teams / Permissions

    • Teams overview
    • Owners team
    • People
    • Team permissions (push, pull, read-only)
    • Create team
    • Adding/inviting Users
    • Adding repos
    • Updating teams
    • Deleting teams
    • Settings and Notifications

    • Review Organization Settings
    • Notifications / Watching
    • Update Profile
    • Rename Organization
    • Delete Organization

    Chapter 7 : Working With GitHub

      Pull Request Workflow

    • Workflow overview
    • Configure autorebase
    • Fork repo from Organization
    • Clone to workstation
    • Push to self (feature branch)
    • Issue Pull Request / Review features
    • Accept Pull Request
    • Sync local and fork repo
    • Clean up
    • Git Flow with GitHub

    • Workflow Overview
    • GitFlow Locally
    • GitHub and GitFlow
    • Single Repository model (not forking)
    • Implications for forking repos

    Chapter 8 : Advanced GitHub

    • force push
    • reset with GitHub
    • create branch after reset / starting a branch at a commit

    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.