How teams change code safely: commits, branches, pull requests and a history you can trust.
Everything this course covers, in the order you'll learn it. Open a stage to see why it matters and jump to its lesson.
What version control is and how to set Git up properly once.
Lesson 1: Version control, and setting Git up once →Understand the three places a change lives before it is saved for good.
Lesson 2: Commits: the working folder, the staging area and history →Work on a change without breaking main for everyone else.
Lesson 3: Branches: work on many things without breaking main →Where your team, your code reviews and your pipelines meet.
Lesson 4: GitHub: your account, repositories, forks and clones →Keep your laptop and GitHub in sync without surprises.
Lesson 5: Remotes: push, fetch and pull without surprises →Pick the right way to bring work together, and fix conflicts without panic.
Lesson 6: Merge, rebase, squash: combining work, and fixing conflicts →The day-to-day workflow of a real engineering team.
Lesson 7: Collaboration: issues, pull requests and code review →Everyone breaks something. Know which undo is safe on a shared branch.
Lesson 8: Undoing changes: revert, reset, stash and reflog →Find out what changed, when, and who to ask.
Lesson 9: History and diffs: find what changed, who changed it, and when it broke →Clean up before you share. And the rules for when never to.
Lesson 10: Rewriting history: amend, interactive rebase and safe force-pushes →Mark exactly what went to production so you can roll back to it.
Lesson 11: Tags and releases: version numbers people can trust →Catch mistakes before they leave your laptop, and automate the boring parts.
Lesson 12: Hooks and automation: let Git check your work →Keep secrets out of history and dependencies up to date.
Lesson 13: Security and extras: secrets, Dependabot, LFS, submodules and Pages →Stage order follows the community roadmap at roadmap.sh/git-github, trimmed to what DevOps work needs.