Git, GitHub & GitHub Actions
Welcome
A practical, first-principles guide to version control with Git, collaboration on GitHub, and automation with GitHub Actions — what each piece does, how it works underneath, when to reach for it, and where the failure modes are.
About This Course
Almost every software project on earth runs on Git, almost every open one lives on GitHub, and a growing share of them ship through GitHub Actions. Most engineers learn the five commands that get them through the day and stop there — until a force-push eats a teammate's work, a rebase goes sideways, or a workflow leaks a secret, and the missing mental model suddenly costs a day.
This course builds that model from the ground up. It starts with what version control actually is and how Git stores history as a graph of immutable snapshots, then works up through branching, rewriting history, and the object model underneath. It covers GitHub as the collaboration layer — pull requests, review, branch protection, ownership — and then GitHub Actions in depth, from the first workflow file to reusable pipelines, environments, OIDC, and supply-chain security.
Every topic follows the same shape: what it is, how it works, when to use it, when not to, the common mistakes that bite real teams, and the practices that prevent them. Where two approaches compete — merge versus rebase, squash versus merge commit, stored secrets versus OIDC — the course compares them and says when each one fits rather than leaving that work to you.
Who This Is For
Engineers who use Git and GitHub daily and want to stop guessing, and those starting from zero who want to build the model right the first time. A beginner can read it in order, from "what is a commit" to self-hosted runners; an experienced engineer can jump to a topic to settle a decision or close a gap. It assumes you are comfortable on the command line; it assumes nothing about Git itself.
What You Should Already Know
- Comfort in a terminal — running commands, editing files, basic shell navigation
- A rough sense of what a build and a test suite are for your stack
- HTTP, SSH, and TLS at the level of what they do, not how they are implemented
- No prior Git, GitHub, or CI/CD experience required
How the Course Is Built
The fourteen chapters move from the core outward. The first six cover Git itself — foundations, everyday use, branching and merging, rewriting history, the internals, and remotes. The next three cover GitHub: the platform, collaboration, and the team workflows that tie them together. Three chapters then go deep on GitHub Actions and the security and supply-chain concerns that come with running automation. The book closes with end-to-end case studies and a consolidated set of best practices and anti-patterns.
A few principles run through every chapter. They are worth stating up front, because they explain why the course is shaped the way it is.
Chapter Map
Disclaimer
This course is an independent educational project created and maintained by Sergey Okinchuk. It is provided for learning and reference purposes only.
No affiliation. This course is not affiliated with, sponsored by, endorsed by, or officially connected to GitHub, Inc., Microsoft, the Git project, Software Freedom Conservancy, or any company or project mentioned. All opinions, interpretations, and recommendations expressed are those of the author.
Trademarks. "Git" and the Git logo are trademarks of Software Freedom Conservancy. "GitHub" and the GitHub logo are trademarks of GitHub, Inc. Other names such as "GitLab", "Bitbucket", "Mercurial", "Perforce", and "CircleCI" are trademarks of their respective owners. Use of these names and marks is for identification and educational purposes only and does not imply any endorsement.
Accuracy and currency. Git, GitHub, and GitHub Actions evolve continuously — commands, defaults, UI, pricing, free-tier limits, and Actions features drift over time. Facts in this course reflect the author's understanding at the time of writing and may not be current. Always consult the official Git and GitHub documentation as the authoritative source before making operational decisions.
No warranty. This material is provided "as is" without warranty of any kind. Commands, workflows, and configuration snippets are illustrative, not production-ready, and several describe destructive operations (force-push, history rewriting, hard reset). Run them only when you understand the consequences. The author accepts no liability for any loss or damage arising from reliance on the content.