Git and GitHub Crash Course | Complete Guide to Mastering Git
Welcome to the ultimate Git and GitHub crash course! Whether you're a beginner or want to deepen your understanding of version control, this comprehensive guide will take you through everything you need to know about Git and GitHub—from the basics to advanced tools and workflows.
🔑 What You'll Learn:
- Understand the fundamentals of Git and how it works under the hood.
- Master version control concepts like commits, branches, and tags.
- Explore advanced features like rebasing, stashing, and interactive rebase.
- Learn how to manage remote repositories and collaborate using GitHub.
- Automate workflows with Git hooks and GitHub Actions.
00:00:00 Intro
00:00:22 Chapters Summary
00:01:02 Chapter 1: What's Git?
00:01:06 What's a Version Control System?
00:01:52 Centralized vs Distributed VCS
00:03:54 Short History of Git 📜
00:05:12 Installation and Configuration ⚙️
00:06:34 Initialize git repository
00:07:33 How Does Git Work?
00:08:19 Object Database
00:09:04 SHA1 🔐
00:09:46 Object Structure
00:10:10 Blobs | File Contents
00:15:10 Index (Staging area) | Picture Frame 🖼
00:17:47 Trees | Taking a Picture 📸
00:21:18 Commits | Picture's Data 💾
00:23:21 References | How to get our objects back?
00:26:53 Tags | Remarkable Moments in History 🏷
00:29:06 Three-Tree Model | How Does Git Know?
00:32:52 Chapter 2: Basics
00:37:52 Staging
00:39:02 Ignoring Files | When not to Look 🙈
00:45:13 Unstaging I
00:45:55 Committing | saving a snapshot
00:47:47 Stagging lines not files
00:51:05 Changing git editor
00:52:53 Unstaging ||
00:56:02 rm --cached vs restore --staged
00:59:37 Rollback strategies | Undoing Changes
00:59:50 Revert | Opposite day
01:02:33 Reset | Ommitting Changes
01:09:00 Amend | Editing Changes
01:12:03 Reflog | The Unlimate Log
01:14:37 Aliases | Shorter ways
01:19:00 Stashing | Storing Changes for Later
01:25:06 Revisiting Commits | Trip to the Past
01:27:58 Recap on References | What's deteached HEAD mean
01:35:53 Revisiting Tags 🏷
01:37:46 checkout vs reset | moving in time vs erasing it
01:40:23 Chapter 3: Branches
01:46:31 Merging | Joining Changes 🔀
01:50:23 What are Conflicts?
01:52:12 Resolving Conflicts
01:59:30 Rebasing | Moving Branches around 🏗
02:05:25 Rebasing vs Merging | When and Why?
02:06:42 Chapter 4: Git Tools 🧰
02:07:32 Interactive Rebase | Rewriting History
02:20:54 Cherry-Pick | Repeating Changes
02:25:40 Bisect | Debugging with Git 🔍🐞
02:31:07 Blame | Changes as a crime scene 🕵
02:34:26 Chapter 5: Remotes
02:35:24 Bare Repository | Git on The Server
02:37:29 Adding Remotes | Getting to Know Others
02:38:39 Sharing Changes
02:39:08 Cloning | Getting Changes from Other
02:41:40 What is the upstream branch?
02:44:30 Divergence in History | Going out of sync
02:45:50 Reconciling Branches
02:48:24 Force Pushing | Amending Remote History
02:50:37 Recap on Remotes
02:51:26 Why do we need GitHub?
02:51:30 Chapter 6: GitHub
02:51:55 Create a Remote Repository
02:54:52 Credentials
02:55:49 Access Tokens
02:57:41 Adding Collaborators
02:58:33 Issue Tracker | Planning Projects
03:02:06 Milestones | Setting Deadlines ☠
03:05:52 Closing Issues
03:07:10 Organizing contributions
03:09:03 Creating a Pull Request
03:10:20 Reviewing Pull Requests
03:11:40 Merging Pull Requests
03:13:52 GitHub Flow Overview
03:14:42 Forking a Repository | Contributing to Others
03:22:33 Contributor vs Collaberator
03:23:50 Actions | GitHub Automation
03:25:16 Hooks | Git Automation
03:28:20 Making a Workflow
03:23:23 Making a Release
03:35:30 Why use annotated tags over lightweight?
03:35:59 Recap on GitHub
03:36:51 Outro
Credits
Created by: Badr Mohamed Ashraf
Special Thanks:
To: Open-Source-Community, my student activity, where I first started explaining Git. The experience I gained from teaching my committee shaped a better and more effective way to explain these concepts.
To: Kenzy Adel, thank you for spending countless hours reviewing this course and providing invaluable feedback. Without her efforts and dedication, this course would not have seen the light of day. I am deeply grateful for her input and support.
Tools Used: Linux Pop!_OS, Bash, Git, vs code, vim
Video Editing: CapCut
Slides: Miro
PDF: https://drive.google.com/file/d/1GH-V64EneVJaCS0ucanIJXvkrNSN6czu/view?usp=sharing
Disclaimer: This video was created for educational purposes.
Copyright
© 2025 Badr Mohamed Ashraf. All rights reserved.
This video and its contents, including the script, slides, and examples, are the intellectual property of Badr Mohamed Ashraf. Unauthorized reproduction, distribution, or use of this material without explicit permission is prohibited.