
Master version control with Git and GitHub through hands-on workflows, branching, merging, and collaboration. Learn real-world practices and project management across personal and professional environments.
Explore what versioning is and how version control systems work. Discover the benefits of vcs, touch on scm, the development workflow, types, and tools.
Discover how versioning, version control, and source code management enable collaboration and change history. See how a code repository, branching, and audit trails track who, what, when, and why.
Explore centralized and distributed version control systems, comparing single-server simplicity with offline-capable collaboration offered by distributed VCS such as Git.
Learn the foundations of git, install it on Windows, macOS, or Linux, configure your username and email, then explore git architecture, the dot git folder, and git init.
Git is a fast, distributed version control system enabling offline work, branching, and merging, with a history-tracking, collaboration-friendly workflow and ecosystem around GitHub, GitLab, and Bitbucket.
Install git on Windows using the official installer and select components like git bash and git gui. Configure path and default editor, then verify the installation with git --version.
Learn how to install git on macOS using homebrew or the official download, verify with git --version, and access core git commands for immediate use.
Connect to a linux virtual machine on an aws ec2 instance via ssh, install and configure git, and verify the installation, and set global user name and email for commits.
Discover Git's three-stage architecture: working directory, staging area, and local repository, and how Git captures file snapshots with Sha1 hashes, tracks history with branches and head, and supports remote repositories.
Explore the dot git folder as the brain of your repository and learn how git init turns a folder into a git repository with history and branches.
Demonstrates turning a normal directory into a git repository with git init, revealing the hidden dot git folder and its commit history, configurations, metadata, and hooks.
Master how git tracks file changes, use status, add, commit, and log to monitor history, manage files with ignore rules in .gitignore, compare changes with git diff, and undo changes.
Track the lifecycle of files in git from untracked to modified to staged to committed and learn to use status, add, commit, and log to manage changes.
Explore the dot gitignore file, learn patterns to ignore temporary and system files like log files, node_modules, and ds_store, and see how to apply and commit changes in git.
Manage repository files using git rm to remove, git mv to rename or move, and git diff to view changes.
Explore undoing changes in git by restoring staged or working files with git restore, discarding modifications, and amending commits to keep history neat.
Master git branching and merging to support parallel development and collaboration, learning to create, switch, and delete branches, merge changes, resolve conflicts, and undo with reset and revert.
Understand branches as isolated, parallel workspaces to test features like dark mode and safely merge into the main branch. Discover how commits and head pointers enable lightweight, collaborative development.
Explore branch operations in git, creating and switching between master, feature one, and feature two, demonstrating isolated changes, file commits, and preparation for merging.
Learn how to merge branches in git, including fast-forward and three-way merges, to create a merge commit and preserve history. Resolve conflicts and integrate feature changes into main for collaboration.
Learn to resolve git merge conflicts by creating changes on master and feature branches, inspecting conflict markers, keeping both changes, and committing the resolution.
Explore git reset and git revert and their modes: soft, mixed, and hard reset, and learn when to rewrite history versus preserve it.
Explore the basics of GitHub, including remote repositories and collaboration. Create an account, navigate the interface, and push changes from your local git to back up online.
Push your work from a local git repository to a remote hub on platforms like GitHub to enable collaboration, backup, and continuous integration, issue tracking, and deployment pipelines.
Explore how git powers version control on your machine and how GitHub extends it online with collaboration, issues, pull requests, and project boards for open source and team projects.
Create and verify a new GitHub account by signing up with email or Google and choosing a professional username. Access your dashboard to manage repositories and explore open source projects.
Explore GitHub's main interface and features, from the home feed and explore page to repositories, issues, pull requests, and GitHub Copilot, learning to personalize your profile and navigate the platform.
Create your first GitHub repository by choosing owner, name, and visibility (public or private), adding a description, and optionally a readme, gitignore, or license, then push your local project online.
Push an existing local repository to GitHub using the command line, connect the remote origin, rename the main branch, and authenticate with a personal access token.
Compare https token-based authentication with ssh key authentication for GitHub, and learn how to generate an ssh key pair, add the public key to GitHub, and test the connection.
Learn to connect your local git project to remote repositories on GitHub or GitLab, push and pull changes, and distinguish fetch from pull while cloning for collaboration.
Learn to add, view, rename, and remove git remotes such as origin and backup, using git remote -v to display fetch and push URLs.
Master pushing and pulling basics in git, including staging, committing, and pushing to origin main, then fetching and merging to keep your local and remote in sync.
Learn the difference between git fetch and git pull. Fetch downloads updates into remote tracking branches for review; pull merges them.
Learn how to clone GitHub repositories using https and ssh, create local copies, commit changes, and push to origin, with hands-on steps using readme.md and Hello.txt.
Master common git workflows by stashing changes, learning rebasing to keep history clean, and watching a hands-on demonstration that reinforces practical, smooth collaboration.
Learn to stash unfinished work in git with a temporary storage box to switch branches without committing. Restore later with git stash apply or git stash pop; stashes stay local.
Explore git rebasing to move commits onto the latest main branch, rewrite history for a cleaner, linear history, and understand when not to rebase on shared branches.
This demonstration teaches rebasing in git by creating a rebase branch, adding commits, and rebasing onto main to achieve a clean, linear history, with practical commands.
Explore the complete Git and GitHub workflow, including forking, issues and discussions, pull requests, and repository settings to collaborate, contribute, and manage projects effectively.
Connect concepts and demonstrate the end-to-end git and GitHub workflow from the working directory to the remote repository. Master initializing, staging, committing, and pushing for safe collaboration across teams.
Demonstrates a complete Git workflow from init to merging on GitHub, using a simple landing page to practice commits, branches, and collaboration features.
Learn how forking creates a full copy of another repository in your own account, enabling safe experimentation and later proposals to the original project.
Open issues track bugs and improvements, while discussions foster questions and ideas, enabling collaboration and knowledge sharing on GitHub.
Demonstrates how to create and manage pull requests from a fork or branch. Review, merge, or close PRs with clear titles and descriptions, guided by diff previews and checks.
Explore GitHub repository settings to configure access, visibility, and features, and manage branches, actions, environments, and security with code scanning, secret scanning, and webhooks.
Learn to tag and version projects in git by creating lightweight and annotated tags, marking official releases, and keeping a cleaner, more professional project history.
Learn to version a project release in GitHub using tags and releases, mark milestones with v1.0 on the main branch, add release notes, and publish assets on the releases page.
Learn how git tags mark specific commits for versioning, explain lightweight and annotated tags, and push them to remote repositories to create GitHub releases.
Version control is the backbone of modern software development, it’s how developers track changes, collaborate seamlessly, and manage complex projects with confidence. At the heart of it all lies Git and GitHub, the most widely used tools for code versioning and collaboration.
This course takes you from the very basics of version control systems to real-world GitHub collaboration, ensuring you gain both practical knowledge and hands-on experience.
Whether you’re a beginner, a developer stepping into team workflows, or a project manager who wants to understand how code collaboration works, this course will equip you with everything you need to confidently use Git and GitHub like a pro.
What’s in this course?
We’ll begin with the fundamentals of Version Control Systems, explore the differences between Centralized (CVCS) and Distributed (DVCS) systems, and understand why Git revolutionized version control.
From there, you’ll install and configure Git across different operating systems, learn the core concepts of repositories, commits, branches, and merges, and then move on to GitHub, where real collaboration begins.
Through demonstrations, you’ll perform push, pull, clone, and rebase operations, handle merge conflicts, and learn how to create pull requests, manage issues, and collaborate with others using GitHub’s workflow.
You will build practical projects, including:
Setting up and configuring Git across Windows, macOS, and Linux
Working with files - tracking, committing, and managing changes
Using branching, merging, and rebasing to handle project versions
Connecting your local Git with GitHub using HTTPS or SSH
Understanding the difference between git fetch, git pull, and git push
Collaborating with others via Forks, Issues, Discussions, and Pull Requests
Using GitHub Projects, Wikis, and Actions for productivity and automation
Tagging and versioning project releases
By the end of this course, you’ll be able to:
Use Git confidently for solo and team projects
Manage repositories and track changes like a professional developer
Collaborate effectively using GitHub’s tools and workflows
Automate workflows and manage project documentation efficiently
Special Note
This course is packed with hands-on demonstrations, practical examples and real-world troubleshooting, ensuring you don’t just learn Git commands, but also understand how and when to use them in real projects.
Course Structure
Lectures
Step-by-step Demonstrations
Practical Scenarios & Troubleshooting
Course Contents
Introduction to Version Control System and It’s Types
Different VCS Tools and Why Git?
Working with Files in Git
Understanding .git Folder & various git command
Various Branching Operations and Merging Strategies
GitHub Fundamentals and its need?
GitHub Remotes and Repositories
Everyday Situations in Git with Practical Scenario/Usecases
Workflow & Collaboration in GitHub
Conflict Resolutions
Tagging and Versioning
GitHub Projects, Wikis, Issues, Pages
Troubleshooting tips
All sections of this course are demonstrated live, with the goal of encouraging enrolled users to set up their own environments, complete the exercises, and learn through hands-on experience!