Skip to content

Latest commit

 

History

History
109 lines (77 loc) · 5.28 KB

File metadata and controls

109 lines (77 loc) · 5.28 KB

Version Control

Overview

Version control systems (VCS) are essential for tracking changes, collaborating with teams, and maintaining the integrity of source code. Mastering tools like Git empowers developers to work efficiently, manage contributions, and maintain a full history of project evolution.


Status: 🟢 Core Topic

Who should learn this?
✅ Anyone writing code or documents
✅ Developers working in teams
✅ Open-source contributors
✅ DevOps and CI/CD engineers

Learning Objectives

  • Understand the role and purpose of version control systems
  • Learn the fundamentals of Git: commits, branches, merges, rebases, and tags
  • Practice resolving merge conflicts and navigating Git logs
  • Gain confidence using GitHub/GitLab for collaboration
  • Explore advanced Git workflows and internals (e.g., rebase vs merge, reflogs, cherry-pick)

Key Concepts

  • Version Control: Managing changes to code over time
  • Git Basics: init, add, commit, branch, checkout, merge
  • Branching Strategies: Git Flow, trunk-based development, fork & PR model
  • Remote Repositories: GitHub, GitLab, Bitbucket
  • Collaboration Tools: Pull requests, merge conflicts, code reviews
  • Git Internals: SHA hashes, refs, reflog, detached HEAD state
  • Enterprise Git: Hooks, submodules, LFS (Large File Storage)

📚 Books

Title Author(s) Level Description
Learning Git: A Hands-On and Visual Guide to the Basics of Git Anna Skoulikari Beginner Step-by-step visual approach for newcomers. Focuses on core commands and local workflows.
Pro Git (Free) Scott Chacon, Ben Straub Beginner–Intermediate The canonical Git book. Covers everything from setup to internals. Available online for free.
Git Pocket Guide Richard E. Silverman Beginner Concise reference for command-line Git. Great quick lookup for developers.
Git in Practice Mike McQuaid Intermediate Focuses on real-world usage, branching strategies, and contribution workflows.
Version Control with Git Jon Loeliger, Matthew McCullough Intermediate–Advanced Deeper coverage of Git's architecture, history rewriting, and advanced internals. Ideal for power users.

🎓 Courses & Tutorials

📘 Beginner Level

Course Title Provider Level Description
Introduction to Git and GitHub Google (Coursera) Beginner Covers Git fundamentals and GitHub workflows. Offers certificate upon completion. ✅
Git and GitHub Bootcamp Udemy Beginner Practical Git/GitHub training with GUI and CLI workflows. Highly rated.
Pro Git Book (Free HTML) Git SCM Beginner–Intermediate Official Git documentation and book. Great supplement to any course.
Git Essentials – Learn Git Branching Open Source Beginner–Intermediate Interactive sandbox for visualising commits, merges, and rebases. Highly engaging.

📗 Intermediate Level

Course Title Provider Level Description
Atlassian Git Tutorials Atlassian Intermediate Excellent web tutorials with visual diagrams. Explores branching, merging, rebasing, and workflows.
GitHub Learning Lab GitHub Intermediate Interactive GitHub-based labs that guide users through pull requests, issues, and workflow configuration. ✅
LinkedIn Learning: Git Essential Training LinkedIn Learning Intermediate Comprehensive course that includes exercises and LinkedIn badge. ✅

🏅 Certifications & Badges

Platform Credential
Coursera (Google) Certificate of Completion (shareable, resume-friendly)
GitHub Learning Lab GitHub Badge (for each lab or series completed)
LinkedIn Learning Skills badge + certificate export to LinkedIn
Udemy Certificate of Completion (non-accredited but motivational)

🛠️ Hands-On Projects

  • Use Git to track a personal project (blog, code repo, resume site)
  • Contribute to an open-source repo on GitHub (make a PR)
  • Build a GitHub Actions workflow that tests code on push
  • Simulate and recover from a merge conflict locally
  • Create a project using git flow or trunk-based branching models

✅ Assessment

  • Can you explain the difference between merge and rebase?
  • Are you confident in resolving conflicts and navigating git log?
  • Do you know when to use cherry-pick, stash, or revert?
  • Can you describe the full Git collaboration cycle: clone → commit → push → PR → merge?

🔗 Next Steps