Git version control & GitHub collaboration — branching, merging, pull requests, GitHub Actions, CI/CD workflows, and team collaboration patterns.
Welcome to the complete Git & GitHub course — your practical guide to mastering version control and collaborative software development. Whether you are a solo developer managing your projects or part of a large team building production software, Git and GitHub are essential tools that every developer must know.
Course Overview
Git is the most widely used distributed version control system in the world, and GitHub is the largest platform for hosting and collaborating on Git repositories. Together, they form the backbone of modern software development workflows — from individual projects to enterprise-scale applications maintained by thousands of contributors.
This course teaches you Git from the ground up. You'll understand how version control works internally (the object model, refs, and the staging area), master everyday commands, learn branching and merging strategies used by professional teams, and become proficient in GitHub's collaboration features including pull requests, code reviews, issues, and GitHub Actions for CI/CD. By the end, you'll be comfortable contributing to open source projects and managing complex team workflows.
What You Will Learn
By completing this course, you will be able to:
- Understand version control concepts — why VCS matters, centralized vs distributed systems, Git's architecture
- Set up and configure Git — installation, global configuration, SSH keys, and GPG signing
- Master core Git commands — init, add, commit, status, log, diff, and the staging area workflow
- Work with branches effectively — create, switch, merge, rebase, delete, and resolve merge conflicts
- Use remote repositories — clone, push, pull, fetch, upstream tracking, and managing multiple remotes
- Collaborate on GitHub — forking, pull requests, code reviews, issues, labels, and project boards
- Apply professional workflows — Git Flow, GitHub Flow, trunk-based development, and release management
- Undo and recover changes — reset, revert, stash, cherry-pick, reflog, and recovering lost commits
- Automate with GitHub Actions — CI/CD pipelines, automated testing, deployment workflows, and custom actions
- Contribute to open source — finding projects, understanding contribution guidelines, and submitting quality PRs
Prerequisites
Before starting this course, you should have:
- Basic command line skills — navigating directories, creating files, and running commands in terminal
- Any programming experience — familiarity with writing and saving code files (any language)
- A GitHub account — free to create at github.com
- A computer with Git installed (we guide you through installation)
No prior Git experience is needed. We start from the very first git init.
Course Chapters
- Introduction — What is version control, why Git, history of Git, Git vs other VCS
- Installation & Setup — Installing Git on Windows/Mac/Linux, configuration, and first repository
- Git Basics — init, add, commit, status, log, .gitignore, and the three-tree architecture
- Branching — Creating branches, switching, merging (fast-forward and 3-way), and branch management
- Merging & Conflicts — Merge strategies, resolving conflicts, merge tools, and avoiding conflicts
- Remote Repositories — clone, push, pull, fetch, remote tracking branches, and multiple remotes
- GitHub Essentials — Repository creation, README, licensing, issues, labels, and milestones
- Pull Requests — Creating PRs, code review process, requesting reviews, and PR best practices
- Rebasing — Interactive rebase, squashing commits, rewriting history, and rebase vs merge
- Undoing Changes — reset (soft/mixed/hard), revert, stash, cherry-pick, and reflog
- Git Workflows — Git Flow, GitHub Flow, trunk-based development, and choosing the right workflow
- GitHub Actions — CI/CD basics, workflow files, triggers, jobs, steps, and common automation patterns
- Advanced Git — Submodules, subtrees, hooks, bisect, blame, worktrees, and large file storage (LFS)
- Open Source — Finding projects, contribution workflow, writing good PRs, and community guidelines
- Projects — Portfolio website deployment, team collaboration simulation, and automated release pipeline
- Interview Preparation — Top Git questions, scenario-based problems, and command cheat sheets
Who This Course Is For
- Beginner developers who have never used version control before
- Students learning collaborative development for the first time
- Working developers who use Git basics but want to master advanced workflows
- Open source contributors who want to understand the fork-and-PR workflow
- DevOps engineers who need to set up CI/CD pipelines with GitHub Actions
- Interview candidates who need to explain Git workflows and resolve conflict scenarios