Git in 21 Days: A Free Study Plan for Beginners

16 August 2026

533 views

This study plan is up to date as of August 2026

Git in 21 Days: A Free Study Plan for Beginners
In This Study Plan

Every frontend developer eventually runs into the same moment of panic: a broken merge, a lost commit, or a branch that somehow diverged from everyone else's work. Git is the tool that prevents that panic, but most beginners learn it backward - copying commands from Stack Overflow when something breaks, instead of understanding what those commands actually do. That approach gets you through one crisis and leaves you unprepared for the next one. This plan takes the opposite route: 21 days of deliberate, sequential practice, so the commands become second nature instead of memorized incantations.

If you've ever wondered how to learn Git for beginners without drowning in terminology you don't need yet, the answer is scope control. This plan doesn't cover rebasing strategies, submodules, or Git internals - not because those topics don't matter, but because a beginner trying to learn everything at once usually ends up understanding nothing well. Instead, it isolates the exact skill set every developer uses daily: initializing repositories, committing changes with intention, branching without fear, resolving simple conflicts, and collaborating through GitHub.

By day 21, you'll be able to manage a real project's version history independently, work confidently across branches, and collaborate on GitHub through pull requests - without needing to look up basic commands.

Three weeks is enough time to learn Git commands quickly without cutting corners, because Git's core workflow is genuinely learnable in that window when the practice is structured correctly. Each week builds directly on the last: local fundamentals first, then branching and merging, then the collaborative GitHub workflow that ties it all together. There's no filler here - every day maps to a skill you'll use in your first job, your first open-source contribution, or your first team project.

Who Is This Free Study Plan For?

This plan is built for people who are new to Git specifically, regardless of how much frontend experience they already have - HTML, CSS, and JavaScript knowledge isn't required to start. It assumes you're comfortable using a terminal for basic navigation, though even that gets a quick refresher in Week 1 if you're rusty. The pacing works for anyone asking how long it takes to learn Git and GitHub realistically, since 21 days at roughly an hour a day is enough to build genuine working fluency, not just passive recognition. What makes this plan specifically useful is that it treats Git as a workflow to internalize through repetition, not a reference sheet to memorize - every day includes hands-on practice, because typing git commit a dozen times teaches you more than reading about it once. Here's exactly who benefits most from following it:

  • Frontend beginners who've only used Git through a GUI or a bootcamp's copy-paste instructions. If you've run git add . and git commit without fully understanding what staging actually does, this plan rebuilds that understanding from the ground up instead of letting the gap persist.
  • Career changers about to start their first developer job or freelance project. Nearly every professional coding environment assumes working Git fluency on day one; this plan closes that gap before it becomes a visible weakness in a new role.
  • Self-taught developers who've avoided branching out of fear of "breaking something." A huge number of beginners stick to a single branch indefinitely because merge conflicts feel intimidating - this plan removes that fear through deliberate, low-stakes practice in Week 2.
  • Bootcamp students who need Git fluency before group projects start. Group assignments expose Git gaps fast, since conflicting changes and shared branches surface problems solo practice never does; this plan prepares you for that collaborative pressure in advance.
  • Anyone preparing a GitHub portfolio for job applications. A commit history is often the first thing a hiring manager or recruiter actually reviews - this plan ensures that history reflects real understanding, not a handful of confused, undone commits.

How Long Does It Take to Learn Git and GitHub?

For most beginners, 21 days of focused practice is enough to become comfortable with the Git and GitHub workflow covered in this free plan, especially if you spend roughly an hour a day working in a real repository. If you are deciding how to learn Git, start with local repositories and commits before adding branches, remotes, and collaborative workflows. The most reliable answer to how to learn Git commands quickly is repetition: run the same core commands in small projects until you understand the state change each command creates instead of memorizing syntax in isolation. GitHub becomes much easier once commits, branches, and merges already make sense locally, because the remote workflow then adds only a few new concepts at a time. Use the three weeks below as a practical progression rather than a deadline, and repeat any stage that still feels uncertain before moving forward.

If you prefer learning without a fixed 21-day schedule, follow our Git & GitHub Roadmap instead. It organizes the full set of Git and GitHub topics without tying them to specific dates, so you can move at your own pace, mark completed topics, and track your progress as you work through the roadmap.

Week 1: Local Git Fundamentals (Days 1-7)

The first week stays entirely local - no GitHub, no remote repositories, no collaboration yet. This is deliberate: understanding what Git does on your own machine before adding a network layer prevents the confusion most beginners run into when remote and local concepts blur together. You'll learn how Git tracks changes, what the staging area actually does, how to write commit messages that mean something, and how to inspect a project's history. By day 7, you should understand a repository's state at any point in time just by reading git status and git log output. This week also covers .gitignore, a detail beginners often skip and then regret once they've accidentally committed a folder of dependencies.

Day Topic Description
Day 1 Installing Git & Terminal Basics Install Git, configure your username and email with git config, and review the handful of terminal commands (cd, ls, pwd, mkdir) you'll use constantly throughout this plan. Confirm your setup with git --version.
Day 2 Initializing a Repository Learn git init, what actually gets created inside the hidden .git folder, and the difference between a tracked and untracked file. Understand that a repository is just a folder Git has started watching.
Day 3 Staging & Committing Study git add (including git add . versus adding individual files) and git commit -m. Understand why staging exists as a separate step from committing, rather than committing every change automatically.
Day 4 Checking Status & History Learn git status for reviewing pending changes and git log (including --oneline and --graph) for reviewing project history. Practice reading a commit history like a timeline, not a wall of text.
Day 5 Writing Commits That Matter Study commit message conventions - imperative mood, concise summaries, when to add a longer body - and why a clean commit history is a professional skill, not a formality.
Days 6-7 .gitignore & Undoing Changes Learn .gitignore syntax for excluding files like node_modules or .env, then cover git restore and git reset for undoing uncommitted changes safely before anything gets pushed anywhere.

Hands-On Practice for Week 1

  • A personal notes repository. Initialize a new repo for daily notes or a journal, committing changes each day with a meaningful message. This project builds the daily habit of staging and committing deliberately instead of in one large batch.
  • A "messy commit" cleanup exercise. Deliberately make several small, unrelated changes to a test project, then practice staging them into separate, logical commits instead of one giant commit. This trains the judgment of what belongs together in a single commit.
  • A .gitignore template for a real project stack. Build a .gitignore file for a typical frontend project (covering node_modules, build folders, environment files) and test that it actually excludes what it should.
  • A commit history rewrite drill. Make a handful of test commits with vague messages ("fix stuff," "update"), then use git commit --amend to rewrite the most recent one and see exactly what changes and what doesn't.
  • An "undo" recovery scenario. Intentionally break a file, then practice recovering it using git restore before staging, and git reset after staging, so both recovery paths feel familiar before you ever need them under real pressure.

What Helped Me Learn This Stage

  • I recommend running git status after nearly every command during this first week, even when you're confident you know the result. Building that checking habit early prevents surprises later, when the stakes are higher.
  • I suggest writing commit messages as if someone else will read them in six months, because in a team environment, someone eventually will - and "fixed bug" tells that person nothing useful.
  • You should resist committing everything in one giant commit at the end of a work session. Committing in small, logical chunks is one of the habits that separates comfortable Git users from anxious ones.
  • I advise reading your own git log --oneline output back like a story of what you did, not just a list. If it doesn't make sense to you, it won't make sense to a teammate either.
  • I recommend practicing on a genuinely low-stakes test folder before touching any real project. Making mistakes here costs nothing, and that freedom is exactly what makes the habits stick.

Week 2: Branching & Merging (Days 8-14)

Week 2 is where Git stops being a save button and starts being a tool for working on multiple ideas at once without them interfering with each other. This is the concept that intimidates most beginners, largely because early exposure to merge conflicts tends to happen accidentally rather than through structured practice. You'll learn to create and switch branches, understand what a branch actually is under the hood, merge changes back together, and resolve conflicts calmly instead of panicking. By day 14, a merge conflict should read as a manageable, understandable event rather than something to be avoided at all costs. This week also introduces git stash, a small but genuinely useful tool for saving unfinished work.

Day Topic Description
Day 8 What a Branch Actually Is Learn that a branch is simply a movable pointer to a commit, not a copy of your entire project. This mental model removes most of the confusion beginners have about branches being "heavy" or risky to create.
Day 9 Creating & Switching Branches Study git branch, git switch (and the older git checkout syntax), and git switch -c for creating and moving to a new branch in one step. Practice moving between branches and observing how files change.
Day 10 Making Isolated Changes Practice making commits on a feature branch without touching the main branch at all, reinforcing that branches keep work genuinely separate until you choose to combine it.
Day 11 Merging Branches Learn git merge, the difference between a fast-forward merge and a three-way merge, and how to read Git's merge output to understand exactly what happened.
Day 12-13 Resolving Merge Conflicts Deliberately create a merge conflict, then learn to read conflict markers (<<<<<<<, =======, >>>>>>>), resolve them manually, and complete the merge. This is the single most important hands-on skill of the week.
Day 14 Stashing Unfinished Work Study git stash for temporarily setting aside uncommitted changes without committing them, and git stash pop for bringing them back. Understand when stashing is more appropriate than a work-in-progress commit.

Projects to Build This Week

  • A feature-branch workflow simulation. Create three separate branches off a small project, each adding an unrelated feature (like a new page section), then merge them back into main one at a time. This trains the core branch-then-merge rhythm you'll use constantly on real teams.
  • An intentional conflict resolution exercise. Edit the same line of the same file on two different branches, then merge them and resolve the resulting conflict manually. Doing this on purpose, in a safe environment, removes the fear factor for when it happens for real.
  • A "save my work" stash drill. Start a change, stash it mid-task using git stash, switch to another branch to do something else, then return and pop the stash. This practices the exact interruption-handling scenario that comes up constantly in real development.
  • A branch cleanup exercise. After merging several practice branches, practice deleting the merged branches with git branch -d and confirming your branch list stays clean. Tidy branch management is a habit worth building early.
  • A small landing page with a feature-branch history. Build a simple landing page entirely through feature branches - one for the header, one for the layout, one for styling - merging each into main as it's completed, producing a commit history that reflects real incremental work.

Advice From This Stage of the Plan

  • I recommend creating a branch for absolutely everything this week, even tiny changes, since the goal right now is building the reflex, not judging when it's strictly necessary.
  • I suggest resolving your first few merge conflicts slowly and deliberately, reading every line of the conflict markers, rather than rushing to make the red disappear. Understanding beats speed at this stage.
  • You should practice git stash specifically during a moment when you're genuinely mid-task, not just as an isolated drill, since the real value of stashing only clicks once you've used it to avoid losing real unfinished work.
  • I advise checking git log --graph --oneline --all after every merge this week. Seeing the branch structure visually makes the abstract concept of "branches diverging and reconverging" concrete.
  • I recommend not fearing a messy conflict resolution early on - a conflict you resolve incorrectly and then fix is still a better teacher than a conflict you avoided by never branching in the first place.

Week 3: GitHub & Collaborative Workflow (Days 15-21)

The final week connects everything from the first two weeks to GitHub, where Git's local skills turn into a genuinely collaborative workflow. You'll learn to connect a local repository to a remote one, push and pull changes, clone existing projects, and open your first pull request. This week also covers reading someone else's pull request and leaving a code review comment, since collaboration is a two-way skill, not just a matter of submitting your own work. By day 21, you should be able to contribute to a shared GitHub repository from setup to merged pull request without needing a walkthrough. This is also where the plan closes the loop between local Git fluency and the way real development teams actually work day to day.

Day Topic Description
Day 15 Connecting to GitHub Create a GitHub account if you don't have one, set up SSH or a personal access token for authentication, and learn git remote add origin. Understand the relationship between a local repository and its remote counterpart.
Day 16 Pushing & Pulling Study git push and git pull, including what happens when your local branch and the remote branch have diverged. Practice pushing a local project to GitHub for the first time.
Day 17 Cloning Existing Repositories Learn git clone for copying an existing remote repository locally, and understand how cloning differs from initializing a new repository from scratch.
Day 18 Forking & Working on Someone Else's Project Study the fork workflow - forking a repository to your own account, cloning your fork, and keeping it synced with the original ("upstream") repository.
Day 19-20 Pull Requests Learn to open a pull request on GitHub, write a clear PR description, and understand the review process from both sides - submitting your own PR and reviewing someone else's.
Day 21 Full Workflow Review Practice the complete cycle end to end: branch, commit, push, open a pull request, resolve any review feedback, and merge - the exact loop used on real development teams daily.

This Week's Practice Projects

  • Your first pushed repository. Take one of your Week 1 or Week 2 local projects, connect it to a new GitHub repository, and push it for the first time. This project makes the local-to-remote connection concrete instead of theoretical.
  • A fork-and-contribute exercise on a beginner-friendly public repo. Find a small, actively maintained open-source project that welcomes beginner contributions, fork it, make a small documentation or code fix, and open a real pull request.
  • A simulated two-person collaboration. Using two local clones of the same repository (or a friend's help), practice a scenario where both "collaborators" push changes and have to pull and reconcile them - the most realistic possible rehearsal for team development.
  • A pull request with a deliberate review cycle. Open a PR on your own repository, then review it yourself a day later as if you were a teammate, leaving comments and making at least one revision based on that feedback before merging.
  • A portfolio repository cleanup. Take an existing personal project and rebuild its commit and branch history properly - clear commits, a sensible branch structure, and a real README - so it's genuinely presentable to a hiring manager reviewing your GitHub profile.

Recommendations for Getting the Most Out of This Week

  • I recommend setting up SSH authentication rather than repeatedly typing a token, since the setup friction on day 15 is worth avoiding for every push and pull afterward.
  • I suggest contributing to a real, if small, open-source project before day 21 if at all possible. A pull request on someone else's actual codebase teaches things a solo practice repository simply can't.
  • You should write your pull request descriptions as if a stranger will review them, explaining what changed and why - this habit transfers directly into every professional development job.
  • I advise practicing what happens when git pull encounters a conflict on a shared branch, not just conflicts you create locally, since remote conflicts tend to happen at less convenient moments and are worth rehearsing in advance.
  • I recommend reviewing someone else's public pull request on GitHub, even without commenting, just to see how experienced contributors structure their PR descriptions and respond to feedback. Reading good examples accelerates writing your own.

5 Best Resources for Learning Git

Every resource below fits into a specific gap this plan intentionally leaves you to fill in your own way - official documentation for precise command behavior, interactive tools for practicing merge conflicts without risk, and video walkthroughs for anyone who learns better watching a real workflow unfold than reading about one. None of these replace the daily hands-on practice this plan is built around; they support it. I'd rather point you toward a small, genuinely useful set than a long list you'll never work through.

Resource Type Best For
Git Official “Learn” Page Official docs, free book, videos Best as your main reference while learning Git fundamentals. Follow Pro Git chapters for daily reading, then practice commands in a local repo. Great for building a solid mental model of commits, branches, remotes, and merging.
Atlassian Git Tutorials Free web tutorials Ideal for structuring your 30‑day plan into topic blocks: basics, branching, collaboration, and advanced workflows. Each article combines explanation with practical scenarios, making it easy to turn sections into short daily exercises in real or demo projects.
Learn Git Branching Interactive visual sandbox Perfect for daily hands‑on practice with branching, merging, and rewriting history. Visual commit trees help you understand what each command does. Use it to reinforce concepts after reading docs and to gain confidence before trying risky operations on real repositories.
Learn Git - Full Course for Beginners” - freeCodeCamp Free YouTube course Best if you prefer video explanations with live terminal demos. Watch in chunks over the first 1-2 weeks, pausing often to replicate each command in your own test repo. Good for building intuition and rhythm around everyday Git usage.
Git & GitHub Roadmap Structured roadmap Useful when you want a ready‑made Git & Github learning path you can adapt in 3-6 weeks. Take the beginner plan, map topics to calendar days, and combine it with your own mini‑projects. Focuses on practical command usage and common workflows.

After 21 Days, You Should Be Able To

Twenty-one days of consistent, hands-on practice builds working fluency with Git, not just passive familiarity with its vocabulary. This checklist exists so you can verify that fluency honestly, rather than assuming it based on how many days you completed. If any item here still feels uncertain, that's a clear, specific signal for which week deserves another pass before you consider this stage finished. Competence at this point means you reach for the right command instinctively, not that you can recite every flag from memory.

  • Initialize, track, and commit changes in a local repository with a clean, meaningful commit history that another developer could actually follow.
  • Create, switch between, and merge branches confidently, including resolving a merge conflict manually without panicking or guessing.
  • Connect a local repository to GitHub, and push, pull, and clone without needing to look up the basic command syntax.
  • Open, describe, and review a pull request as part of a real or simulated collaborative workflow, from initial branch to final merge.

Local fluency and a single collaborator's worth of pull requests only cover part of what real development teams expect from Git day to day. Once branching and basic collaboration feel routine, the next stage moves into the workflows that only show up at team scale - rebasing, resolving conflicts across multiple contributors, managing releases, and the Git practices that keep a shared codebase stable as more people touch it at once.


Your next step is A 30-Day Git Study Plan for Middle Developers

© 2026 ReadyToDev.Pro. All rights reserved.

Methodology

Privacy Policy

Terms & Conditions