Git & GitHub Tutorial
Course Contents
Git Fundamentals
- Git Introduction
- Installing Git
- Configuring Git
- Git Get Started (First Repository)
- How Git Works (Snapshots, Not Diffs)
- The Three States: Working Directory, Staging, Repository
Git Basics
- git init
- git status
- git add and the Staging Area
- git commit
- git diff
- git log
- Ignoring Files with .gitignore
Git Branching
- Understanding Branches
- git branch
- git switch and git checkout
- Creating and Deleting Branches
- git merge
- Resolving Merge Conflicts
- Fast-Forward vs Three-Way Merges
Undoing Changes
Stashing and Cherry-Picking
Git Remotes
- Understanding Remotes
- git remote add
- git clone
- git fetch vs git pull
- git push
- Tracking Branches
- Upstream vs Origin
Rebasing
- git rebase Basics
- Rebase vs Merge
- Interactive Rebase
- Squashing Commits
- Resolving Rebase Conflicts
- The Golden Rule of Rebasing
Tags and Releases
- Git Tags
- Annotated vs Lightweight Tags
- Managing Tags
- Pushing Tags to a Remote
- Semantic Versioning with Tags
Collaboration Workflows
- Centralized Workflow
- Feature Branch Workflow
- Gitflow Workflow
- Forking Workflow
- Trunk-Based Development
- Choosing a Git Workflow
GitHub Basics
- What Is GitHub?
- Creating a GitHub Account
- Creating a Repository on GitHub
- Writing a Good README
- GitHub Repository Structure
- Connecting a Local Repo to GitHub
Pull Requests
- What Is a Pull Request?
- Creating a Pull Request
- Code Review on GitHub
- Merge Strategies: Merge, Squash, Rebase
- Resolving Pull Request Conflicts
- Draft Pull Requests
Issues and Project Management
- GitHub Issues
- Labels and Milestones
- GitHub Projects (Boards)
- Linking Issues and Pull Requests
- Closing Issues with Commits
- GitHub Discussions
SSH, Signing and Security
- SSH Keys for GitHub
- GPG Commit Signing
- Personal Access Tokens
- Keeping Sensitive Data Out of Git
- Removing Secrets from Git History
- Branch Protection Rules
Git Hooks and Automation
- What Are Git Hooks?
- Client-Side Hooks (pre-commit, commit-msg)
- Server-Side Hooks
- Husky and Hooks in JavaScript Projects
- Introduction to GitHub Actions
- Your First GitHub Actions Workflow
