beginnerFreeGithub
GitHub Complete Course
A complete GitHub course covering Git basics, history navigation, branching, merging, remotes, SSH, repositories, and collaboration workflows.
Duration
19h 15m
Lessons
68 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
68 lessons • 19h 15m 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
Community feedback
Course reviews
Loading reviews...