Git for Beginners
Welcome
Version control is the first tool every developer meets and the one nobody explains. This course starts before the first command: what actually goes wrong without it, what Git is (and the three things people think it is), and a terminal you have never opened. From there you build a real history — commits that mean something, branches, a merge, a conflict resolved calmly, and every common way of undoing a mistake, including the safety net almost nobody tells beginners about. The second half puts the work where other people can see it: GitHub keys and pushes, pull requests, code review from both sides, issues, a README worth reading, and your first contribution to a stranger’s project. One running example — Sandpiper, a birdwatching club’s website — carries every command, and the last chapter is an honest map of what this book left out and where to learn it.
About This Course
Git has a strange place in a developer's education. It is the first tool you are handed and the last one anybody explains: someone says "just commit and push" on day one, and from then on you are running commands you cannot read against a program nobody has described. Most people compensate by memorizing four incantations and quietly hoping nothing goes wrong for the next two years.
This course takes the opposite route. It starts before the first command, with what actually goes wrong when you keep versions of your work in folders called site-FINAL-v2. It introduces the terminal from zero, because the register of this book assumes you have never opened one. Then it builds the model that makes Git predictable — a file is in one of three places — and everything after that is a small step from something you already understand.
To keep it concrete, the whole book builds one project. You are making Sandpiper, a small website for a neighbourhood birdwatching club, while learning to code. Its files, its accidents, and eventually its second contributor carry every example. By the last chapter Sandpiper is a public repository with a readable history, a README, a licence, and a merged pull request — which is to say, the first thing you could show someone.
Who This Is For
Someone learning to write code who has never used version control: a student, a bootcamp attendee, a career-switcher a few weeks into their first course. You have files you care about and an editor you already use. You do not need to know what a server is, you do not need any command line experience, and no prior Git of any kind is assumed.
If you already commit, branch and merge daily, this course is below you — the deep dive named at the end of it is the one to read instead.
What You Should Already Know
- How to create, rename and open files and folders on your own computer — everyday user knowledge, nothing more
- How to use a text editor of some kind; any one you already have is fine
- No command line experience — an entire topic in Chapter 1 introduces the terminal from nothing
- No HTML or programming knowledge is required to follow the examples: Git never looks inside your files, and neither does this book
How the Course Is Built
Eleven chapters, in a deliberate order. The first three build the foundation: why version control exists, your first repository and the three places a file can be, then how to read the history you are building. Chapter 4 comes next, out of the order most books use, because "I broke something and I am afraid to touch it" is the thing that actually stops beginners — so undoing gets a full chapter before branching does, and it ends with the reflog, the safety net that makes everything else survivable.
From there: ignoring the files Git should never see, then branches and merge conflicts, and at the halfway point GitHub, which is the first time anything leaves your laptop. The second half is other people — pull requests, review, issues, contributing to a stranger's project — and it closes with the habits that keep you out of trouble and an honest map of what this book did not cover.
Every topic has the same shape: the problem first, the mechanism second, a picture, the mix-ups beginners actually run into, why it matters, and a short knowledge check. Every command is one you can type at your own keyboard while reading.
rebase exactly once, at the end, as something the deep dive covers. A beginner who rebases shared work loses it; a beginner who merges gets an untidy graph and keeps everything.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 the Git project, GitHub, Microsoft, or any other company, product, or organization mentioned. All opinions, interpretations, and recommendations expressed are those of the author. Sandpiper, Theo, and every scenario built around them are fictional; any resemblance to real projects or persons is coincidental.
Trademarks. Product and company names referenced — including Git, GitHub, and any other tools or services — are the property of their respective owners. Use of these names is for identification and educational purposes only and does not imply any endorsement.
Educational simplifications. This material teaches durable concepts for understanding, not operational instructions. Explanations are deliberately simplified for learning, and where a simplification could mislead, the text says so and names where the full picture lives. This course is not professional advice and is not a substitute for qualified expertise in any decision involving production systems, security, or the handling of credentials.
Accuracy and currency. Git's command set is unusually stable, but hosting services are not: GitHub's interface, its authentication requirements, and its account settings change without notice. Facts in this course reflect the author's understanding at the time of writing and may not be current. Where a detail is likely to drift — installation, authentication, and the web interface in particular — always check the official documentation.
No warranty. This material is provided "as is" without warranty of any kind. The author accepts no liability for any loss or damage arising from reliance on the content, including any loss of data or source history.