GitHub Ultimate: Master Git and GitHub - Beginner to Expert
- Description
What you’ll learn
-
Understand how Git works behind the scenes
- Learn the key concepts of the Git source control system
- Step through the entire Git workflow
- Master the essential Git workflow: adding & committing
- Master Git stashing
- Work with local and remote repositories
- Squash, clean up, and rewrite history using interactive rebase
- Write custom and powerful Git aliases
- Use Git diff to reveal changes over time
- Master collaboration workflows: pull requests, “fork & clone”, etc.
- Retrieve “lost” work using git reflogs
- Mark releases and versions using Git tags
- Compare the different states in Git
- Manage files inside and outside the control of Git and GitHub
- Create and manage repositories on GitHub
- Create branches and resolve conflicts with confidence
- Save work in progress with Stashes
- Mark special events with Tags and Releases
- Even a bit of time travel within Git repositories and on GitHub
- Perform many of the same local Git operations directly on GitHub
- Join other GitHub projects by Forking and contribute back using Pull Requests
- Review and Accept Pull Requests from Others
- Share code with Gists
- Manage project defects or enhancement requests with GitHub IssuesGroup related repositories together with GitHub Organizations
Detailed Description
This course will cover the GitHub hosting service as well as the Git source control tool in detail, so no prior knowledge or expertise is required. Students will leave with a thorough understanding of Git and hands-on experience with GitHub.
The following sentence is annoying, but also true: the best time to learn Git was yesterday. Fortunately, the second best time is today! Git is an essential tool for work in any code-related field, from data science to game development to machine learning. This course covers everything you need to know to start using Git and Github in the real-world today!
Course Organization
The course is divided into four major components:
-
Introduction and Setup
-
Learning Git Source Control
-
All About GitHub
Each one of the above components spans multiple sections in this course.
Explaining how to resolve Git breaking when upgrading macOS
Introduction
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 course’s sections are broken down into four separate units:
-
Git Essentials
-
Next Level Git
-
Github & Collaboration
-
The Tricky Bits
We start off with Git Essentials. The goal of this unit is to give you all the essential Git tools you need for daily use. We start off talking about version control software, what it is, why it matters, and the history of Git. Then we install Git and run through the Unix commands you’ll need to work with Git (you can skip this if you’re already familiar). The bulk of this unit is focused on teaching the core Git mechanics like committing and branching and the associated concepts: the working directory, the repository, the staging area, etc. We cover Git commands including: git init, git add, git commit, git status, git log, git branch, and git merge. We end with a detailed look at branching, merging, and resolving conflicts.
Then we move on to out Next Level Git unit, where we cover additional commands and Git concepts that are extremely useful, but maybe not as “core” as the Git Essentials. We start with a comprehensive look at the git diff command and the various comparisons that we can make between commits, branches, the working directory, the staging area, and more! We pay special attention to reading and parsing the dense output generated by diffs. Then we shift our focus to stashing with the git stash command, a “convenience command” that many users love incorporating into their Git workflow. Finally, we dive deep into undoing changes and time traveling with Git. We learn how to revisit earlier work, detach and re-attach HEAD, and discard changes. We cover git commands that help us undo changes including git checkout, git restore, git reset, and git revert.
Next up, we change gears to focus on Github & Collaboration. We start by exploring Github (and similar tools) that host remote repositories and discussing the benefits they provide. We create our own Github repositories and sync up changes between our remote and local repositories using the git push, git pull, and git fetch commands. We then focus on commonly used collaboration workflows that students may encounter in the real world: feature branching, pull requests, forking & cloning, and more! We discuss contributing to open source projects and configuring Github repositories for collaboration. We also spend some time learning about useful Github features including Github Gists and Github Pages for free static hosting.
The last unit in the course, The Tricky Bits, is really just a collection of useful Git command and advanced topics. We start by covering one of the “scarier” Git commands: rebasing! We discuss the potential benefits and pitfalls of rebasing and compare it to merging. Then we learn how to clean up our Git history by rewording, editing, dropping, and squashing commits using the interactive rebase command. Next, we discuss Git tags (lightweight and annotated tags) semantic versioning and tagging workflows. After that, we move on to a deep dive into the inner workings of Git. We discuss the files and folders Git uses internally, the role of hashing functions in Git, and the role of Git objects (blobs, trees, etc.). Next, we talk about reference logs and the git reflog command. Specifically, we learn how we can use reflogs to rescue “lost” commits and undo rebases. Finally, we learn how to write custom and powerful Git aliases!
Throughout the course, you’ll find tons and tons of diagrams and visual references I’ve created to try and explain Git. The course also includes exercises I’ve tested on my in-person students, to give you an opportunity to practice the concepts in the course along the way. If you are reading this sentence, I congratulate you on making it this far ๐ I hope you enjoy the course!
Course Features
All tools have installation and configuration sections to ensure no one is left behind.
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!

- Basic computer skills
- Ability to install software on your computer
- Admin rights may be required for software installation
- Anyone interested in using source control and specifically Git and GitHub
- Software engineers, developers, programmers new to Git or GitHub
- IT Managers or technical leads considering Git or GitHub for version control on their team
- Freelancers or other creative professionals
Archive
Working hours
Monday | 9:30 am - 6.00 pm |
Tuesday | 9:30 am - 6.00 pm |
Wednesday | 9:30 am - 6.00 pm |
Thursday | 9:30 am - 6.00 pm |
Friday | 9:30 am - 6.00 pm |
Saturday | 9:30 am - 6.00 pm |
Sunday | Closed |