
Master git and GitHub as essential version control tools through a scaffolded beginner-to-advanced course. Engage with hands-on labs, Q&A, and a supportive course community to apply concepts to real projects.
Explore how version control systems manage changes to files over time, track history, and support collaboration, using a presentation workflow to demonstrate saving, revising, and merging versions.
Explore git, the free, open source version control system used by 94% of developers; learn its universality, history, and setup on Windows and macOS, and distinguish it from GitHub.
Discover how GitHub extends git with a cloud hosting service that enables remote access, access control, issue tracking, and team collaboration for versioned projects.
A hands-on lab demonstrates three steps: install homebrew, install git, and verify the version on macOS with git --version.
Install git on windows by downloading the installer from the git website, accepting default settings, and verifying the installation with git --version in a command prompt.
Install GitKraken, a GUI tool that visualizes Git history and helps manage projects, then follow the website instructions to set up the graphical interface.
Learn the basics of git by understanding repositories, initializing them with git init, and checking status with git status to track change history.
Learn to initialize an empty git repository with git init, then verify setup by running git status to confirm the directory is a working git repository.
Learn the three git tracking areas—working directory, staging area, and repository—and move changes with git add and commit, then view history with git log and commit messages.
initialize a git repository, track and stage file changes, and create commits while exploring status, add, and log commands with a practical olympics example.
Explore how git branches enable parallel development by isolating features and fixes from the master code. Learn about commits, hashes, merges, and common branch names like master and main.
Understand how the head pointer tracks the current commit on the active branch, switch between master, bugfix, and push notifications, then merge changes, and grasp detached head.
Explore creating, switching, and deleting git branches from the current head using git branch, git switch, and git checkout, with descriptive dash-separated names and safe handling of head state.
Explore practical git branching workflows in a demo repo: create and switch branches, commit changes, view history, and safely delete unmerged branches with git -d and -D.
Learn how to merge branches in git by switching to the destination branch and running git merge, with fast forward and non fast forward strategies.
learn to merge branches using a fast-forward merge in git, moving master to include the added cat breeds from the cats branch with a simple, linear history.
Demonstrates non-fast-forward merges, showing how git creates a merge commit with two parents to combine changes from master and feature when the destination has new commits.
Follow a hands-on example merging the demo branch into master, identify conflict regions marked by markers, and decide to keep one side or both, then remove markers before committing.
Explore how merge conflicts arise in a Git repository on master, resolve them with conflict markers in the editor, accept current or incoming or both changes, and commit resolution.
undo commits with git reset to move a branch to a specific commit, optionally deleting later commits or using --hard. revert creates a new inverse commit, not changing history.
Examine undoing changes with git reset and git revert, compare history and working directory effects, and use git reset --hard to discard changes and revert to a commit.
use git log to locate commit four, then git revert to undo its changes and create a revert commit with the default message.
git stash lets you save work in progress from the working directory and staging area, including untracked files, so you can switch branches safely; apply or pop to recover later.
Learn to stash work in Git, switch to a feature branch, and apply or pop changes back to master across branches.
Learn what gitignore is and why it protects secrets, log files, and dependencies by using root level patterns like api_keys.txt and node_modules.
Explore git rebasing to produce a clean, linear history by appending feature commits onto the latest master, noting that rebased commits receive new ids and avoiding rebasing shared work.
join this hands-on lab on git rebasing to rebase a feature branch onto master, creating a single straight history with commits and fast-forward merges.
Clean up commit history with git interactive rebasing on the head branch, using git rebase -i head~N to edit, squash, reword, or drop commits via editor commands.
Learn to clean up your git history using interactive rebasing, rename and fixup commits, edit messages in the editor, and complete a rebase to produce a clearer commit history.
Learn to cherry-pick a specific commit from another branch by running Git cherry-pick followed by the commit id. Merge when you need multiple commits to preserve the history and readability.
Demonstrates cherry-picking a commit from the feature branch to master to copy the important file without changing the master demo.txt, using git cherry-pick with the commit id.
Learn to use git merge options, such as --no-ff to prevent fast-forward merges and create a merge commit, and --squash to squash commits into one.
Explore git merge options by merging feature into master with no-fast-forward and squash, observe merge commits and history, then reset and squash to consolidate changes from f1, f2 and f3.
Learn how to use git config to set options at local, global, or system scope. Set your user name and email, and adjust the default editor with common options.
Learn to use git config to set local or global user.name and user.email, and verify changes in the git log across repositories.
Explore the git reflog, a log of all events on a reference including head and branch pointers, enabling recovery of lost commits via git reflog show.
Use git reflog to recover a lost commit after a hard reset, view head and master reflog, and restore M4 by resetting to the previous commit.
Tag important commits to track versions. Use git tag to list, add, or delete tags, and git show to view tag and its commit.
Learn to create, view, annotate, and delete git tags with git tag -d, tag specific commits (v4, v3), and inspect tags with git show.
Explore how GitHub, a web hosting service for git repositories, makes local repos accessible online, enabling push and pull, collaboration, and issue tracking. Create a free account to upload changes.
Explore the GitHub website, create an account with email, password, and username, verify your email, and navigate your profile, dashboard, repositories, branches, commits, and readme to manage public projects.
Add an ssh key to your GitHub account to authenticate your local device, allowing you to connect without entering your username and personal access token.
Learn how to create and add SSH keys to GitHub to enable secure authentication, including generating the key pair, starting the SSH agent, and adding the key in GitHub settings.
Learn how to connect a local repository to a remote on GitHub using git remote and git remote add, naming the remote origin and pointing to its URL.
Participate in a hands-on lab that shows how to clone a GitHub repository, create a cloning demo with a readme, commit changes, and push to the remote.
Push local git changes to a remote repository using git push, specifying the remote name and branch, such as origin master, to keep branches in sync.
Learn to push updates from a local git repository to GitHub by initializing, adding and committing files, linking to a remote origin, and setting upstream to master.
Learn how git pull merges latest remote changes into your working directory, and how git fetch downloads updates to a remote tracking branch for later merging.
Learn how to synchronize local and remote repositories using git pull and git fetch, followed by git merge to apply remote changes to your working directory.
Learn to manage git branches using the -a, -r, and - options to list local, remote, and tracking branches. Explore git remote to view references for a remote repository.
Back up important files by initializing a local git repository, committing, and pushing to a private GitHub repository. Push to the master branch and verify the backup on GitHub.
Compare public and private GitHub repositories, noting visibility, cloning rights, collaboration for owners and approved contributors, and when to choose each for open source or confidential projects.
Compare public and private GitHub repositories by creating each type, adding a readme, and testing access from signed-in and unsigned sessions to show visibility differences.
Learn how pull requests on GitHub enable collaborative review of changes, with feedback, comments, and decisions to accept or reject, before merging feature branches into master.
Learn how to create a feature branch, open and review a pull request, request changes, and merge into main to add a new feature on GitHub.
Learn how forking on GitHub creates a personal copy of a repository. Contribute via pull requests, unlike cloning.
Learn how GitHub issues organize bugs, feature requests, and tasks in one place, separate from Git. Link issues to pull requests to automatically close them when PRs are merged.
Learn to create GitHub issues, assign teammates, link issues to pull requests, and track status from open to merged in a demo repository.
Explore GitHub projects, a project management tool like Trello and Jira, to view and link tasks on a board, assign collaborators, and auto-update linked issues across repos.
Create and manage a GitHub projects board to organize a product demo, switch between list and board views, convert tasks to issues, and track status from to do to done.
Explore GitHub actions to automate tasks from pushes, merges, and manual runs. Configure yaml workflows to run tests, enforce style, and deploy to App Store and Play Store with ci/cd.
Demonstrate configuring a simple GitHub actions workflow triggered by push or pull request on main, running on ubuntu latest, with steps and outputs in YAML under .github/workflows.
Whether you’re new to IT or an experienced professional, understanding Git is essential for tracking changes, collaborating on projects, and maintaining a clean workflow.
In this comprehensive Ultimate Git & GitHub Crash course, you’ll go from a complete beginner to an advanced user in just 3 hours. The course is Designed for DevOps Engineers, Cloud Professionals, IT professionals, Developers, and anyone looking to master version control.
The course is laser-focused on the essential skills you need to excel in your work, cutting out all the fluff, history, and irrelevant details. Every lesson is designed to equip you with practical, real-world knowledge that will directly enhance your daily tasks and workflows. No time is wasted—just pure, actionable content that will immediately boost your Git and GitHub productivity and proficiency.
Starting with the basics, you’ll learn how to set up Git, create repositories, commit changes, and work with branches. As you progress, you’ll dive into advanced topics like resolving merge conflicts, using GitHub for collaboration, and optimizing your workflow with pull requests, issues, and actions. With hands-on exercises and real-world examples, you’ll build the confidence to use Git & GitH in any project.
By the end of this course, you’ll not only understand how to manage your code or IT artifacts with Git, but you’ll also be able to navigate GitHub like a pro — collaborating with teams, contributing to open-source projects, and improving your workflow. Whether you’re working on personal projects or in a team, this course will help you take control of your scripts, code, or artifacts like never before!
Enroll now!