What you'll learn

  • Work with some advanced GIT commands
  • Know how to rewrite history with squash, rebase, and reset.
  • View history in the reflog, expire unreachable commits using reflog and the garbage collector
  • Create linear GIT history trees
  • Use Aliases
  • Use the stash to temporarily save changes
  • Work with Tags
  • Become a more advanced GIT user
4 hours on-demand video
2 articles
2 downloadable resources
Full lifetime accesss
Access on mobile and TV
Certificate of completion
Closed captions

  • Welcome and Info about this course 02:00
  • What this course won't do [Please review before purchasing] 03:16

  • Get an Account at GitHub 03:19
  • Setup a Repo at GitHub 03:56
  • Get an Account at GitHub and Setup a new Repo 1 question
  • Get GIT on your machine [Windows] 05:11
  • Get GIT on your machine [Ubuntu Linux] 02:04
  • Get GIT on your machine [MAC] 02:25
  • Get GIT on your machine 1 question
  • Get VSCode for use as an editor, a diff tool, and a merge tool 03:49
  • Get VSCode on your machine 1 question
  • Setup VSCode as the default editor 05:13
  • Setting VSCode as the default editor 1 question
  • Setup VSCode as the default difftool 08:25
  • Turning off the difftool prompt 04:42
  • Setup VSCode as the default DiffTool 3 questions
  • Setup VSCode as the default merge tool 04:05
  • Set VSCode as the Default Merge Tool 3 questions
  • I already have a project, how do I add it to a REMOTE repository at GitHub 09:48
  • Get an existing project into a new LOCAL repository and then publish to a REMOTE 1 question
  • Get GitViz [Optional] 08:25
  • The Repo I am using - Note: You can use any repo, you don't need mine. 00:11
  • The website I use in some of the demos 00:04

  • Amending Commits: Changing the commit message 06:00
  • Amending Commits: Adding a file to a previous commit 03:57
  • Working with the git commit --amend command 3 questions
  • Exploring the reflog: Part 1 08:15
  • Exploring the reflog: Part 2 07:28
  • A simple examination of git reflog 3 questions
  • Squash and Merge at GitHub: Part 1 09:08
  • Squash and Merge at GitHub: Part 2 07:58
  • Squash and Merge at GitHub: Part 3 08:28
  • Performing a git squash and merge at GitHub to condense our commit tree. 2 questions
  • Using Aliases 05:19
  • Using Aliases to simplify our commands 4 questions
  • Set your system to always prune during fetch 01:47
  • Performing a soft reset 06:38
  • Hard reset and clean on current commit 07:49
  • Hard reset on previous commit - merge into master 09:40
  • Learning about git reset and git clean 4 questions
  • Reverting a commit 04:56
  • Reverting the state of the repo with a public revert commit 2 questions
  • Introduction to Rebasing 06:17
  • Working with Rebase: Activity 1 - Part 1 07:29
  • Working with Rebase: Activity 1 - Part 2 07:23
  • Working with Rebase: Activity 2 10:32
  • Working with Rebase - Activity 3 09:59
  • Rewriting our history with [git rebase] 4 questions
  • Cherry Picking 09:35
  • Performing a git cherry pick to 'pick' a specific commit into our repository. 3 questions
  • Stashing Changes Part 1 09:42
  • Stashing Changes Part 2 07:15
  • Working with git stash 4 questions
  • Tagging 10:35
  • Tagging our repository 4 questions

  • Conclusion & Next Steps 01:31
  • You should be familiar with GIT. You should have GIT installed on your machine, and an account at GitHub or BitBucket.
  • You should know how to work with basic GIT workflows

This course is a deeper dive into GIT. As such, it is expected that you would have at least some working knowledge of GIT before you take this course. For example, you should be familiar with basic commands like "add, commit, push, pull, fetch, and merge." You should also have a basic working knowledge of working with a REMOTE repository like GitHub or BitBucket.

The first part of this course will just make sure we're setup for the remaining part of the course and serve as a simple review. This includes basic stuff like getting an account at GitHub, setting up our machine for working with GIT, and setting a few default configurations. Feel free to skip this part of the course if you are already good to go.

The bulk of the course will then take a deeper dive into the following commands:

  • git commit --amend
  • git reflog
  • git rebase
  • git config --global alias
  • git fetch --prune
  • git reset [both soft and hard resets]
  • git clean
  • git revert
  • git cherry-pick
  • git stash
  • git tag

Additionally, we'll see what it looks like to perform different merges at GitHub to complete a pull request, including

  • Squash and Merge
  • Rebase

At the completion of this course, you'll be proficient with some of the more advanced GIT commands that we encounter when working with GIT repositories on a daily basis in the real world. You'll also have been exposed enough and understand enough about the commands to take your skills to the next level when working with GIT. You'll also know what it takes to make and keep your tree linear in your GIT history, and you'll have tools to rescue your repository when things get a bit tricky.

Cheng Wang

Cheng Wang

Software Engineer and Computer Science Instructor
Total students
Cheng is an experienced speaker, author, trainer, and .Net developer with MCSA: Web App Certification, MCSD: App Builder, AZ-900/104/204/400, DP-900/300, and MCT certifications. Cheng has a masters of science degree in computer information systems, and a bachelor of science degree in computer science. Additionally, Cheng has over ten years of experience instructing college courses online in SQL databases, C#/VB .Net programming, Java programming, and Microsoft Office. Cheng also recently had his first APress book "Practical Entity Framework" published.

My Courses

View To Document

Contact Us

Please leave contact information. We will contact you soon