Mastering Git and GitHub Online Course
Mastering Git and GitHub Online Course
This hands-on course introduces Git as a powerful Version Control System and GitHub as a collaboration platform for developers. You’ll start with Git fundamentals, including installation, internals, hashing, snapshots, branches, merging, rebasing, and stashing. Then, you’ll dive into GitHub workflows—commits, README files, cloning, collaboration, remote branches, conflict resolution, fetch vs. pull, and branching strategies. By the end, you’ll be equipped to manage repositories confidently, collaborate effectively, and apply real-world Git workflows with signed commits and digital signatures.
Who should take this Course?
The Mastering Git and GitHub Online Course is ideal for software developers, programmers, and DevOps engineers who want to efficiently manage code, collaborate on projects, and streamline version control. It is also suitable for students, beginner coders, and IT professionals seeking hands-on experience with Git commands, branching strategies, and GitHub workflows to enhance their development and collaboration skills.
What you will learn
Course Outline
Introduction to Git
- Introduction
- Need for Version Control System and Git Part 1
- Need for Version Control System and Git Part 2
- VCS - How It Works
- Distributed VCS
- Installing Git
- Git CLI Versus Git Bash Versus Git GUI
- Basic Bash Commands
- What Exactly Is Git Commit
- Initializing the Project and Exploring the .git Folder
- Configuring Git Credentials and Exploring Local Global System Configs
- Staging and Unstaging and Checking Status
- Understanding Commit with Multiple Use Cases
Git Deep Dive
- SHA1 Hashing Algorithm
- Git Internals (All about Object Database) Part 1
- Git Internals (All about Object Database) Part 2
- Git Internals - Viewing and Reading Git Objects
- How Blob Objects Behave
- Garbage Collection and Pack Files
- Git Snapshot - What It Means to Take a Snapshot
- Time Travel with Git
- Time Travel in Practice
All About Branches
- Life without Branches
- What Are Git Branches
- How Branches Solved Our Problems
- How Git Branches Work and What Exactly Is a Branch
- Branches in Action (Creating Branches and Exploring the Git Repo)
- Understanding - Detached Head State - Head in Action
- Undo the Changes with Git Reset HEAD
- Retrieving the Lost Mystery with reflog
Merging
- Fast-Forward Merge
- Fast-Forward Merge in Action
- Deleting the Branch and Recovering
- Understanding Three-Way Merge and Merge Commit
- Three-Way Merge in Action
- Understanding Merge Conflicts
- Merge Conflicts in Action Part 1
- Merge Conflicts in Action Part 2
- Installing and Setting Up Visual Studio Code to Work on Git
- Exploring VS Code and Performing GIT Operations
Rebasing
- Git Rebase Versus Merge
- Performing Rebase in VS Code and Handling conflicts
- Git Rebase in Git Bash - Skipping Conflicts and Aborting the Rebase
- Git Interactive Rebase
- Rebase to a Specific Commit or to Another Feature Branch
- When to Use Rebase and When to Use Merge – Use Cases
Stashing
- What is Stashing - Its Use Cases - Example of Stashing
- Applying the Stash Across Multiple Branches
- Retrieving a Specific Stash - Listing Stashes - Handling Conflicts
- Stashing Selective Changes and Retrieving Them - Understanding Hunk
- Exploring Stashing in VS Code - Deleting a Stash
Git Ignore
- Git Ignore and Its Significance
- Git Ignore in Action - Global Exclude Config
- Precedence Order - Overriding - Pattern Debugging
- Ignore Files That Were Already Committed
- Generating the Ignore Files for Your Project
Getting Started with GitHub
- Why GitHub - GitHub Versus Bit Bucket Versus GitLabIntroduction"
- Creating GitHub Account
- Creating and Understanding Public and Private Repositories in GitHub
- Making Commits in GitHub and Understanding ReadMe File
- Creating Branch and Committing Changes - Managing Branches in GitHub
Getting Started as Collaborator
- Cloning a Public Repo and Exploring Other Options
- Cloning a Private Repository and Adding Project Collaborators on GitHub
- Understanding Tracking Branches and Default Branch
- Making Exploring Tracking Branches - Configuring Default Branch - Understanding Origin-Head
- Understanding Origin Remote - Adding, Editing, Deleting Remotes
Git Fetch
- Understand Git Fetch and Its Use Cases
- Git Fetch in Action Part 1 (Command Variations - Checking Status with Commands)
- Git Fetch in Action Part 2 (Exploring References - FETCH_HEAD)
- Switching to Remote Repo State
- Merging the Changes - Using FETCH_HEAD
- Using Visual Studio Code to Fetch and Merge
- Updating Local References with Git Fetch
Git Pull
- Understanding Git Pull
- Git Pull in Action and Observing What It Does
- Understanding Git Pull with Three-Way Merge
- Git Pull with Rebase and Its Implications
- Dealing with Conflicts with Git Pull --Rebase
- Using Stashing and Hard reset
Git Push - Contributing to a Remote Repository
- Setting Up Everything for Contributing - Adding Collaborators - Setting Credentials and Making Commits
- Creating a Remote Branch and Pushing Changes Using Git Bash and VSCode - Pushing to All Branches and VSCode - Pushing to All Branches
- Understanding Pull Request - Raising a Pull Request
- Understanding Protected Branches - Applying Branch Protection Rule - Mandating Code Reviews
- Reviewing and Approving the Changes - Working on Review Comments and Publishing New Changes
- Exploring the Merging Options - Understanding Squashing Commits - Deleting Remote Branch from the Local Machine
- What Git Pull Actually Does
- Resolving Conflicts on GitHub the Right Way - Force Pushing Changes and Its Consequences
- Divide and Conquer Strategy
- Resolving Conflicts by Merging Main into the Feature Branch
Forking and Contributing to Opensource Repositories
- What Is Forking and Why Forking
- Forking a Public Repository and Cloning It in Our Local Machine
- Contributing the Necessary Changes
- Syncing the Forked Repository with the Original One and Updating the Local
- Syncing the Forked repo with the original from the local repo
- Pushing Our Changes to the Forked Repo
- Raising the Pull Request and Merging the Changes in the Upstream Repository
- Exploring Existing Public Project
Branching Strategy and Tags
- Branching Strategy Explained
- Branching Strategy with Realtime Scenario
- Semantic Versioning Explained
- Understanding Git Tags
- Branching Workflow in Action
- Hot Fix Workflow in Action
- Creating Tags - Annotated Versus Lightweight Tags - Pushing Tags to Remote
- Understanding How Tags Are Stored – The Detached Head State with Tags
- Releases and Creating Tags on GitHub
Branching Protection Rules
- Dismiss Stale Pull Request Approvals for New Commits
- Configuring Code Owners with Patterns - Automatic Review Request
- Mandating Conversation Resolution before Merging
- Exploring All Other Branch Protection Rules
Digital Signatures and Verified Commits
- Mimicking the Commits and the Need to Have Verified Commit
- Understanding Digital Signatures
- Understanding Signed Commits
- Creating Public and Private Keys Using GPG
- Exporting Public Key and Updating GPG Key on GitHub
- Making Signed Commit - Setting Global Config - Verifying Signed Commits on GitHub
- Mandating Signed Commits - Signing Commits from VS Code
No reviews yet. Be the first to review!