Git Learning Lab is an educational resource designed to teach Git and version control concepts to all levels of skill and experience.
🚧 This project is currently a work in progress. Tutorials, training guides, and additional learning content will be updated as we continue to work on the project.
- Provide a beginner-friendly, free, and open-source path to learning Git.
- Make learning Git engaging and accessible.
- Support multiple learning styles through written guides and follow-along videos on Youtube.
- Teach practical, real-world Git workflows used by developers and teams.
Choose the learning path that best describes your experience level:
| Experience Level | Recommended Starting Point |
|---|---|
| Never used Git before | Beginner |
| Familiar with basic Git commands | Intermediate |
| Comfortable with branching and collaboration | Advanced |
Although not required, you are encouraged to progress through the material in order. Concepts introduced in earlier sections are often referenced and expanded upon in later lessons.
Intended for those who have never used Git before and are new to version control and source control concepts. This is ideal if you are unfamiliar with basic command line control.
Goal
Learn basic Git usage, command line control of Git Bash, and individual workflows.
Topics
- What is version control?
- Why Git Exists
- Installing Git
- Configuring GitBash for remote tracking
- Creating Repositories
- Understanding Repositories, Commits, History, and Conflicts
- Git Workflow for Individual Use
- Git Terminology
- Git Commands and Usage
- Tracking Files
- Staging Changes
- Committing Changes
- Remote Repositories
Intended for learners who have a basic understanding of Git commands, everyday Git workflows, and are ready to collaborate with others on projects.
Goal
Understand Git internals, complex workflows, and recovery techniques.
Topics
- Understanding the Git Object Database
- Understanding How Git Stores Data
- DAGs
- Understanding HEAD
- Understanding References and Tags
- Detached HEAD States
- GitHub Essentials
- Collaboration Basics
- Remote Repository Management
- Pull --> Add --> Commit --> Push Workflow
- Understanding Basic Merge Conflict Resolution
- Stashing and Ignoring files.
- Personal Access Tokens
- Rewriting Repository History
- Ammending Commits
- Interactive Rebasing
- Squashing Commits
- Cherry-Picking Changes
- Reverting to Prior Commits
- Git Reset
- Recovering Lost Work
- Repository Maintenance
- Git Clean
Intended for learners who are comfortable using Git independently, collaboratively, and are ready to learn professional Git and GitHub workflows.
Goal
Collaborate with others on multi-feature projects
Topics
- Creating Branches
- Feature Development
- Merging Branches
- Advanced Merging Strategies
- Advanced Conflict Resolution
- Pull Requests
- Code Reviews
- Team Collaboration Workflows
- Forking Repositories
- Contributing to Open Source Projects
- Team Development Strategies
- Git Flow and Alternative Workflows
- Monorepositories
- Branch Protection Rules
- Release Management
- CI/CD Fundamentals
- Automations
- GitHub Actions
- Code Ownership
- Large Team Collaboration
- Enterprise Development Practices
- Workflow Optimization and Best Practices