beginnerFreeGithub
GitHub Complete Course
A complete GitHub course covering Git basics, history navigation, branching, merging, remotes, SSH, repositories, and collaboration workflows.
Duration
34h 35m
Lessons
121 lessons
Learners
1k+ enrolled

Outcomes
What you will build confidence with
Follow the course in order with structured lessons and examples.
Practice the key concepts needed to move from basics to real projects.
Use the lesson reader to continue where you left off.
Track completion as you work through the full syllabus.
Syllabus
Course content
121 lessons • 34h 35m total duration
Module 1
Version Control & Git Basics
1
What is Version Control? Why Tracking Changes Matters in Software Development
15m
2
Types of Version Control: Local, Centralized (SVN), and Distributed (Git)
15m
3
What is Git? History, Linus Torvalds, and Git vs Other VCS Tools
15m
4
Installing Git: Windows (Git Bash), macOS (Homebrew), and Linux (apt/yum)
15m
5
Configuring Git: git config for Username, Email, Editor, and Core Settings
15m
6
The Three States of Git: Working Directory, Staging Area, and Repository
20m
7
git init: Initializing a New Repository and the .git Folder Explained
15m
8
git status: Understanding Tracked, Untracked, Modified, and Staged Files
15m
9
git add: Staging Specific Files, Directories, and All Changes
15m
10
git commit: Writing Good Commit Messages, Atomic Commits, and Best Practices
20m
11
git log: Reading Commit History with --oneline, --graph, --decorate, --all
15m
12
git diff: Comparing Working Directory, Staged Changes, and Commits
15m
13
.gitignore: Patterns, Global Ignore, and Ignoring Already-Tracked Files
15m
14
Practical Exercise: Version-Track a Personal Project Folder From Scratch
30m
Module 2
Core Git Commands & History Navigation
15
git show: Inspecting a Specific Commit's Changes and Metadata
15m
16
git log Filtering: --author, --since, --until, --grep, and -S (Pickaxe)
20m
17
git blame: Finding Who Changed Which Line and When
15m
18
git shortlog: Summarized Contribution Stats Per Author
10m
19
Undoing Changes: git restore, git checkout (Old Syntax), and git clean
20m
20
Unstaging Files: git restore --staged vs git reset HEAD
15m
21
Amending Commits: git commit --amend for Local, Unpushed Commits Only
15m
22
git rm: Removing Files from Tracking and the Working Directory
15m
23
git mv: Renaming and Moving Files While Keeping History
10m
24
Tagging: git tag, Annotated vs Lightweight Tags, Listing and Pushing
20m
25
git archive: Exporting a Snapshot of a Repository Without .git History
10m
26
Working with Aliases: git config alias.st status and Creating Shortcuts
10m
27
Practical Exercise: Reconstruct a Broken Repository History Using Log and Restore
30m
Module 3
Branching, Merging & Conflict Resolution
28
What is a Branch? Pointer to a Commit and HEAD Explained
20m
29
git branch: Create, List, Rename, and Delete Branches
15m
30
git switch / git checkout: Switching Between Branches (Modern vs Legacy)
15m
31
git merge: Fast-Forward Merge vs Three-Way Merge
20m
32
Merge Conflicts: What Causes Them and How to Read Conflict Markers
20m
33
Resolving Conflicts: Manual Resolution and Using VS Code / IntelliJ Merge Tools
20m
34
git mergetool: Configuring External Merge Tools
15m
35
git log --merge: Viewing Commits That Caused a Conflict
15m
36
Deleting Branches: Local and Remote Branch Cleanup
15m
37
Long-Running vs Short-Lived Branches: Feature Branches and Hotfix Branches
20m
38
git stash: Temporarily Saving Work in Progress
15m
39
git stash pop / apply / list / drop: Managing the Stash Stack
15m
40
Practical Exercise: Simulate a Multi-Developer Merge Conflict and Resolve It
35m
Module 4
Introduction to GitHub & Remote Repositories
41
What is GitHub? Cloud Hosting for Git, GitHub vs GitLab vs Bitbucket
15m
42
Creating a GitHub Account: Profile Setup and the README Profile Repo
15m
43
Creating a Repository: Public vs Private, README, .gitignore, and License
15m
44
git remote: Adding, Viewing, Renaming, and Removing Remotes
15m
45
git clone: Cloning a Repository via HTTPS vs SSH
15m
46
SSH Key Setup: Generating Keys, Adding to GitHub, and Testing the Connection
20m
47
git push: Pushing Commits to a Remote, the -u Flag, and Tracking Branches
15m
48
git fetch vs git pull: The Difference Between Fetching and Merging Remote Changes
15m
49
git pull --rebase: Keeping a Clean, Linear History
20m
50
Upstream vs Origin: Forking Vocabulary Explained
15m
51
GitHub Repository Settings: Branch Rules, Collaborators, and Visibility
15m
52
README.md Best Practices: Badges, Screenshots, Usage Instructions, and Contributing Guides
15m
53
GitHub Profile README: Making Your Profile Stand Out With a Custom README
15m
54
Practical Exercise: Push a Local Project to GitHub and Invite a Collaborator
30m
Module 5
Collaboration: Forks, Pull Requests & Code Reviews
55
Forking a Repository: When and Why to Fork, Fork vs Clone
15m
56
Keeping a Fork in Sync: Adding Upstream, git fetch upstream, and Rebasing
15m
57
Pull Requests (PRs): Creating a PR, PR Anatomy, and Draft PRs
20m
58
PR Best Practices: Small Focused PRs, Linking Issues, and PR Description Templates
15m
59
Code Review on GitHub: Leaving Comments, Suggestions, and Requesting Changes
20m
60
GitHub Issues: Creating, Labeling, Assigning, Milestones, and Closing via Commit
15m
61
Issue Templates: Bug Report and Feature Request Templates
15m
62
GitHub Discussions: Community Q&A, Announcements, and Polls
10m
63
GitHub Project Boards: Kanban-Style Task Management for Repos
15m
64
Mentions & Notifications: @mentions, Team Mentions, and Notification Settings
10m
65
Squash and Merge vs Merge Commit vs Rebase and Merge: When to Use Each
20m
66
Reviewing PRs Locally: git fetch + Checkout a PR Branch
15m
67
CODEOWNERS File: Automatically Requesting Reviews From Responsible Teams
15m
68
Practical Exercise: Fork a Public Repo, Make Improvements, and Submit a Real PR
40m
Module 6
GitHub Features Deep Dive
69
GitHub Pages: Hosting Static Sites From a Repo (User, Org, and Project Pages)
20m
70
Custom Domains for GitHub Pages: CNAME and DNS Setup
15m
71
GitHub Gist: Creating, Forking, and Embedding Code Snippets
10m
72
Releases & Tags: Creating Releases, Attaching Binaries, and Changelogs
15m
73
GitHub Wiki: Documentation Pages Inside a Repository
10m
74
GitHub Packages: Hosting npm, Docker, Maven, and Other Packages
15m
75
GitHub Codespaces: Cloud Development Environments in the Browser
15m
76
GitHub Copilot Overview: AI Pair Programming Integration
10m
77
GitHub Marketplace: Actions, Apps, and Integrations
10m
78
Starring, Watching, Following: Social Features and Notifications
10m
79
GitHub Insights: Pulse, Contributors, Traffic, and Dependency Graphs
15m
80
Dependency Graph & Dependabot: Automated Security and Dependency Updates
15m
81
GitHub Sponsors: Supporting Open-Source Maintainers
10m
82
Practical Exercise: Deploy a Portfolio Site to GitHub Pages With a Custom Domain
35m
Module 7
Advanced Git Operations
83
git rebase: Replaying Commits on a New Base, Interactive Rebase Introduced
20m
84
Interactive Rebase (git rebase -i): Squash, Reword, Drop, Fixup, and Reorder Commits
25m
85
git rebase vs git merge: When to Rebase, and the Golden Rule of Rebasing
15m
86
git cherry-pick: Applying Specific Commits to Another Branch
15m
87
git revert: Creating a New Commit That Undoes a Previous Commit (Safe Undo)
15m
88
git reset: Soft, Mixed, and Hard Reset — Differences and Dangers
20m
89
git reflog: Finding Lost Commits and Recovering Deleted Branches
15m
90
git bisect: Binary Search to Find the Commit That Introduced a Bug
15m
91
git worktree: Checking Out Multiple Branches Simultaneously
15m
92
Submodules: Including External Repos Inside a Repo, Updating Submodules
20m
93
git subtree: Alternative to Submodules for Shared Code
15m
94
git filter-branch / git filter-repo: Rewriting History, Removing Secrets
20m
95
Practical Exercise: Use Interactive Rebase to Clean Up a Messy Feature Branch Before a PR
35m
Module 8
Git Internals & Configuration
96
The .git Directory: What Each File and Folder Does
20m
97
Git Object Model: Blobs, Trees, Commits, and Tags as SHA-1 Addressed Objects
25m
98
How git add Works Internally: Packing Objects, Writing to the Index
15m
99
How git commit Works Internally: Creating Commit Objects, Updating HEAD
15m
100
Packfiles: How Git Compresses Object Storage
15m
101
Git Hooks: Client-Side Hooks — pre-commit, prepare-commit-msg, commit-msg, post-commit
20m
102
Server-Side Hooks: pre-receive, update, post-receive
15m
103
Practical Git Hooks: Linting Before Commit, Running Tests, Enforcing Message Format
20m
104
Husky: Managing Git Hooks in Node.js Projects
15m
105
git config Levels: System, Global, Local, and Worktree Config Precedence
15m
106
Useful Config Settings: autocrlf, safecrlf, push.default, pull.rebase, rerere
15m
107
git rerere: Reuse Recorded Resolution for Repeated Merge Conflicts
15m
108
Practical Exercise: Write a Pre-Commit Hook That Runs ESLint and Blocks Bad Commits
35m
Module 9
Team Workflows & Branching Strategies
109
Why Branching Strategies Matter: Coordination, Release Management, Hotfixes
15m
110
Git Flow: main, develop, feature/*, release/*, hotfix/* Branch Model
25m
111
GitHub Flow: Simplified — main + Short-Lived Feature Branches + PRs
15m
112
Trunk-Based Development: Everyone Commits to main Frequently, Feature Flags
20m
113
GitLab Flow: Environment Branches (Production, Pre-Production)
15m
114
Comparing Strategies: When to Use Each Based on Team Size and Release Cadence
15m
115
Semantic Versioning (SemVer): MAJOR.MINOR.PATCH Versioning in Releases
15m
116
Conventional Commits: Structured Commit Messages for Automated Changelogs
15m
117
CHANGELOG.md: Maintaining a Human-Readable Version History
10m
118
Monorepo vs Polyrepo: Trade-Offs for Large Teams
15m
119
Git in CI/CD: How Pipelines Interact With Branching Strategies
15m
120
Protected Branches & Merge Rules: Enforcing Workflow Rules on GitHub
15m
121
Practical Exercise: Simulate a Full Git Flow Release Cycle With a Team of 3
40m
Loading reviews...