Git & GitHub - The Practical Guide

Learn how to manage your projects with Git & GitHub - No previous knowledge is required, everything explained for everyone in easy to understand examples!

Git & GitHub - The Practical Guide

Course Overview

About This Course

You’ve probably been there: you change something in your code, it breaks, and you’re not sure what you touched—or how to get back to the last working state. Or you’re joining a team and everyone talks in commits, branches, and pull requests, and it feels like you’re missing the one skill everyone assumes you already have.

This course gives you a clear, step-by-step path into version control with Git and GitHub, without assuming any prior knowledge. You’ll work with the tools the way developers actually use them day-to-day, with easy-to-follow examples and optional refreshers for the Mac Terminal and Windows Command Prompt.

By the end, you’ll be able to create and manage a clean project history, move confidently between local work and GitHub, and collaborate without fear of “messing up the repo.” You’ll know how to recover from mistakes, contribute to shared codebases, and use Git as a practical advantage in private, professional, and open-source projects.

What You'll Learn

You’ll practice the full Git workflow—from your first local repository to collaborating on GitHub with forks, pull requests, and team features.

  • Run daily Git workflows

    Initialize repositories, stage changes, and create commits you can trust. You’ll use Git from the Mac Terminal or Windows Command Prompt to build a structured, readable project history.

  • Understand Git internals

    Explain how the Working Directory, Staging Area (Index), and Repository interact so you can predict what Git will do next. You’ll also understand HEAD and how a detached HEAD affects your work.

  • Work with branches

    Create and manage branches and move changes between them with confidence. You’ll understand local branches, remote branches, and the difference between local-tracking and remote-tracking branches.

  • Handle complex integrations

    Choose the right strategy for combining work using merging, rebasing, and cherry-picking. You’ll also learn how to deal with merge conflicts in a controlled, repeatable way.

  • Recover from mistakes

    Undo and clean up safely: delete staged and unstaged data, remove commits or branches, and ignore files when needed. You’ll also bring back deleted data using the Reflog when things go wrong.

  • Collaborate on GitHub

    Connect local repositories to remote GitHub repos and use push, pull, and fetch to sync work. You’ll collaborate via GitHub collaborators/contributors, and contribute to open source with forks and pull requests.

Ready to get started?

See enrollment options

Prerequisites

  • No prior Git, GitHub, or web development knowledge is required.

  • An email address is required to create a free GitHub account.

  • You can follow along on a Mac or Windows computer.

Who Is This Course For?

  • New developers

    You’re starting (web) development and want to stop relying on “copy-paste Git commands” you don’t understand. This course gives you a reliable mental model so you can work without guessing.

  • Job seekers

    You’re applying for developer roles and keep seeing version control listed as a requirement. This is the practical skill-building you need to feel confident when interviews or take-home projects expect Git and GitHub.

  • Working developers

    You already write code, but your workflow gets messy when projects grow or multiple people touch the same codebase. This course helps you bring structure to your day-to-day work so collaboration feels straightforward.

Curriculum Overview

Start Now

Preview the structure and pacing of this course before you begin.

  • Getting Started8 lectures21m
    • 01Welcome to this Course!2:17 min
    • 02What is Git?7:15 min
    • 03What is GitHub?3:44 min
    • 04Join Our Learning Community!0:00 min
    • 05Course Content5:16 min
    • 06How to Get the Most out of this Course!3:16 min
    • 07Course Slides0:00 min
    • 08The Academind Pro Referral Program0:00 min
  • Optional: Mac Terminal & Windows Command Prompt Introduction16 lectures1h 2m
    • 01Module Introduction0:39 min
    • 02The Command Line - What & Why?3:43 min
    • 03Comparing the Mac & Windows Command Line4:23 min
    • 04Mac Terminal - The Basics6:37 min
    • 05Accessing Folders3:39 min
    • 06Absolute vs Relative Paths3:10 min
    • 07Creating & Deleting Files6:27 min
    • 08Introducing Flags and Removing Data5:00 min
    • 09Copying & Moving Files & Folders8:55 min
    • 10Mac Terminal - Core Commands Overview2:44 min
    • 11Windows Command Prompt - The Basics4:35 min
    • 12Absolute vs Relative Paths4:31 min
    • 13Creating & Deleting Files & Folders3:06 min
    • 14Copying & Moving Files3:13 min
    • 15Windows Command Prompt - Core Commands Overview1:55 min
    • 16Useful Resources & Links0:00 min
  • Version Management with Git - The Basics27 lectures2h 13m
    • 01Module Introduction1:51 min
    • 02Theory - How Git Works6:39 min
    • 03Theory: Working Directory vs Repository4:50 min
    • 04Theory - Understanding Branches4:23 min
    • 05Please Read! Windows & Mac Users0:00 min
    • 06Installing Git on Windows10:37 min
    • 07Installing Git on MacOS4:44 min
    • 08Installing Visual Studio Code9:56 min
    • 09Initializing the Repository & Creating the First Commit ("git init" & "git commi8:28 min
    • 10Diving Deeper Into Commits with "git log"4:14 min
    • 11Understanding & Creating Branches6:58 min
    • 12Merging Branches - The Basics1:51 min
    • 13Understanding the HEAD3:09 min
    • 14The "detached HEAD"3:52 min
    • 15Branches & "git switch" (Git 2.23)2:41 min
    • 16Deleting Data - An Overview1:06 min
    • 17Deleting Working Directory Files3:30 min
    • 18Undoing Unstaged Changes5:28 min
    • 19Undoing Staged Changes5:31 min
    • 20Deleting Commits with "git reset"6:17 min
    • 21Deleting Branches1:51 min
    • 22Committing "detached HEAD" Changes8:37 min
    • 23Understanding .gitignore5:32 min
    • 24Wrap Up & Basic Commands Overview5:50 min
    • 25Git Basics: Assignment - Problem1:25 min
    • 26Git Basics: Assignment - Solution14:09 min
    • 27Useful Resources & Links0:00 min
  • Diving Deeper Into Git15 lectures1h 9m
    • 01Module Introduction0:45 min
    • 02Understanding the Stash ("git stash")8:58 min
    • 03Bringing Lost Data Back with "git reflog"5:44 min
    • 04Combining Branches - What & Why?1:49 min
    • 05Understanding Merge Types2:22 min
    • 06Applying the Fast-Forward Merge9:12 min
    • 07The Recursive Merge (Non-Fast-Forward)7:20 min
    • 08Rebasing - Theory3:20 min
    • 09Applying "git rebase"6:49 min
    • 10Handling Merge Conflicts6:48 min
    • 11Merge vs Rebase vs Cherry Pick2:01 min
    • 12Undestanding "git cherry-pick"5:39 min
    • 13Working with Tags ("git tag")6:29 min
    • 14Wrap Up2:37 min
    • 15Useful Resources & Links0:00 min
  • From Local to Remote - Understanding GitHub18 lectures1h 28m
    • 01Module Introduction1:58 min
    • 02What is GitHub?2:49 min
    • 03From Local to Remote Repository - Theory6:06 min
    • 04Creating a GitHub Account & Introducing GitHub5:57 min
    • 05Creating a Remote Repository5:47 min
    • 06Connecting Local & Remote Repositories8:49 min
    • 07Understanding the Personal Access Token3:37 min
    • 08Pushing a Second Commit5:29 min
    • 09From Local to Remote - Understanding the Workflow4:41 min
    • 10Remote Tracking Branches in Practice8:33 min
    • 11Understanding Local Tracking Branches4:04 min
    • 12Creating Local Tracking Branches8:25 min
    • 13Remote & Tracking Branches - Command Overview2:30 min
    • 14Cloning a Remote Repository9:08 min
    • 15Understanding the Upstream2:33 min
    • 16Deleting Remote Branches & Public Commits6:03 min
    • 17Wrap Up1:52 min
    • 18Useful Resources & Links0:00 min
  • GitHub Deep Dive - Collaboration & Contribution28 lectures2h 50m
    • 01Module Introduction2:42 min
    • 02The 4 GitHub Usecases3:53 min
    • 03Understanding GitHub Account Types5:58 min
    • 04Changing the Repository Type from Public to Private10:09 min
    • 05Pushing Commits to a Public Repository5:29 min
    • 06How GitHub Manages Account Security5:52 min
    • 07Understanding & Adding a Collaborator to a Private User Account7:09 min
    • 08Collaborating in Private Repositories5:03 min
    • 09Comparing Owner & Collaborator Rights3:20 min
    • 10Limiting Interactions6:32 min
    • 11Introducing Organizations1:35 min
    • 12Creating an Organization5:06 min
    • 13Exploring Member Repository Permissions4:36 min
    • 14Adding Outside Collaborators7:28 min
    • 15Adding Organization Members9:08 min
    • 16Failing to Manage Access for Individual Repositories2:51 min
    • 17Introducing Teams9:13 min
    • 18Managing Team Repository Access Efficiently7:06 min
    • 19Understanding Forks & Pull Requests10:23 min
    • 20Forking a Repository8:28 min
    • 21Pull Requests in Practice11:43 min
    • 22Opening & Closing Issues7:26 min
    • 23Working with GitHub Projects8:15 min
    • 24Creating a README File to a Repository7:45 min
    • 25Presenting Yourself as Developer on GitHub5:03 min
    • 26About GitHub Stars1:56 min
    • 27Wrap Up6:18 min
    • 28Useful Resources & Links0:00 min
  • Real Project Example: Git & GitHub Applied17 lectures1h 14m
    • 01Module Introduction1:11 min
    • 02Preparing the Project3:06 min
    • 03Project Setup4:25 min
    • 04Creating our First Commit Locally4:57 min
    • 05Changing the ReactJS Project Code9:11 min
    • 06Pushing the Code to the Owner's Remote Repository6:11 min
    • 07Cloning the Project & Changing the Code7:04 min
    • 08Pushing the Commit & Why it Fails3:14 min
    • 09Adding a Collaborator2:03 min
    • 10Creating the Personal Access Token & Pushing Successfully4:17 min
    • 11Merging the Owner Branches2:22 min
    • 12Fixing Merge Conflicts6:37 min
    • 13Accessing Code via Forks5:15 min
    • 14Contributing to the Project by Improving the Code2:54 min
    • 15Creating the Pull Request6:15 min
    • 16Accepting the Pull Request5:01 min
    • 17Useful Resources & Links0:00 min
  • Congratulations!2 lectures2m
    • 01Course Roundup2:59 min
    • 02More Content!0:00 min

Ready to Get Started?

Choose the option that works best for you.

Single Course

Git & GitHub - The Practical Guide

One Payment. Lifetime Access.

$69one-time

  • One-time payment
  • All future updates for this course
  • Downloadable resources & code
  • Certificate of completion
  • Hands-on exercises & projects
  • Self-paced learning
  • English captions on all videos
  • Lifetime access