← All CoursesStart Learning — Chapter 1.1 →
Git Course · Free · Beginner → Advanced
Git Hyderabad Style
Oka Free Course
Learn Git — start from basics, handle production disasters.
81 chapters + 5 real projects. Reflog, rebase, hooks — Hyderabadi style.
81Chapters
5Projects
10Stages
FreeForever
Stage 1
Auto Stand Level
Basics — Getting Started○1.1
What is Git & How It WorksSnapshots vs diffs — how Git thinks, benefits of distributed
12 min→○1.2Setup & First CommitStart with git config — name, email, editor, aliases set once properly
15 min→○1.3The 3 Areas — Working Dir to Staging to RepoThree personalities in one Git — every command works between these three
18 min→○1.4git status, log & diffgit log --oneline --graph trick, staged diff secret — why diff is empty?
14 min→○1.5.gitignore MasteryHide node_modules, create global ignore, workaround for already tracked files
12 min→○1.6git add -p — Partial StagingFixed 3 things in one file — stage only one chunk, rest for tomorrow
14 min→○1.7git restore & git switch — Modern Commandscheckout used to work in three places — now dedicated commands, no confusion
12 min→○1.8git show & git mvSee full content of any commit, rename files while preserving history
10 min→Auto Stand Git DevGit foundation solid! First commit over Irani chai — success!
Stage 2
Oh Shit Room
Disasters — ohshitgit.com Style○2.1
git reflog — Time MachineAnything deleted — come back with reflog, HEAD@{index} magic for 90 days
20 min→○2.2Fix Last Commit — amend --no-editOne file left after commit — fix with amend, no new commit needed
14 min→○2.3Fix Commit Message — amend rewriteTypo in commit message — amend to rewrite, WARNING: only for local commits
12 min→○2.4Committed to Wrong BranchCommitted on main — soft reset + stash + checkout, fix in three steps
16 min→○2.5Undo Old Commits — revert vs resetRevert on public branch, reset on private — use case and difference explained
18 min→○2.6Recover Deleted FilesFile deleted in a commit — find hash, restore with checkout
14 min→○2.7Stash Pop ConflictStash pop caused conflict — how to resolve, where did the stash go?
14 min→○2.8Dropped Stash RecoveryAccidentally git stash drop — find with fsck, recover while you still can
12 min→○2.9Pushed to Wrong RemoteTest push to production — revert or force push, when to do what
16 min→Oh Shit SolverGit disasters? Now you enjoy them — no panic, just trust the reflog!
Stage 3
Merge Conflict
Conflicts — Real Pain○3.1
What Causes Merge ConflictsSame line, same file — two developers at same time — conflict guaranteed, understand why
14 min→○3.2Reading Conflict Markers<<<<<<< HEAD vs >>>>>>> incoming — what is base, meaning of three-way diff
16 min→○3.3Resolve in VS CodeAccept Current, Accept Incoming, Accept Both — use 3-way merge tool properly
18 min→○3.4Abort & Start Overmerge --abort, rebase --abort — abandon everything and start fresh
12 min→○3.5Prevention StrategiesSmall PRs, sync frequently, communicate before touching the same file
14 min→○3.6Binary File ConflictsImages and PDFs can't be merged — ours/theirs strategy, LFS connection
12 min→○3.7package-lock.json ConflictsMost common conflict — regenerate with npm install, don't touch by hand
14 min→○3.8Rebase Conflict Resolution FlowRebase gives conflict on every commit — continue, skip, abort — step by step
18 min→Conflict CrusherMerge conflicts no longer scare you — become the biggest conflict solver!
Stage 4
Branching Level
Branching — Strategy○4.1
What are BranchesPointer concept, what HEAD means, how detached state comes and how to exit
16 min→○4.2Git Flow Strategymain to develop to feature/release/hotfix — proven formula for big teams
20 min→○4.3Trunk Based DevelopmentShort-lived branches + feature flags — CI/CD friendly, this is what Google and Meta use
18 min→○4.4Branch Naming Conventionsfeat/ fix/ chore/ hotfix/ — for team consistency, also connects to PR automation
12 min→○4.5Stash Deep Divestash list, pop vs apply difference, how to drop, branch from stash trick
16 min→○4.6Deleting Branches — Local + RemoteLocal deletion and remote deletion — both have different commands and merged check
12 min→○4.7Orphan BranchesHistory-less branch — GitHub Pages secret, way to keep docs separate
14 min→○4.8Branch Protection RulesPrevent force push on main — required reviews, status checks, GitHub settings
14 min→Branch ChefBranches no longer scare you — play with them, sync perfectly with the team!
Stage 5
Rebase Level
Rebase — History Cleanup○5.1
Merge vs Rebase — The Big DebatePreserve history or make it linear — golden rule: rebase local, merge public
22 min→○5.2Rebase onto MainUpdate PR with rebase — fetch + rebase + force-with-lease, in correct order
18 min→○5.3Interactive Rebase — squash, reorder, editrebase -i HEAD~N — turn 10 WIP commits into 1 clean commit, review ready
24 min→○5.4Cherry-pickOnly one commit needed from another branch — hotfix best friend, conflict handling
16 min→○5.5When NOT to RebaseNever rebase on a shared branch — you will destroy team history!
14 min→○5.6Rebase Conflict Flow — continue/skip/abortRebase stopped midway — git rebase --continue vs --skip vs --abort when to use
16 min→○5.7Autosquash — fixup & squash automationfixup! prefixed commits auto squash — WIP workflow next level
14 min→Rebase MasterClean history, linear commits — senior devs will be happy seeing your PR!
Stage 6
Remote Level
GitHub — Teams○6.1
Clone, Fetch, Pull & PushWhat origin means, tracking branches, difference between fetch and pull
18 min→○6.2SSH vs HTTPS SetupGenerate SSH keys, add to GitHub, token workaround — one time setup
16 min→○6.3Pull RequestsHow to write a good PR — description, linked issues, screenshots, small focused changes
20 min→○6.4Code Review CultureNit vs blocker, suggestion vs request — async review etiquette, proper PR comments
18 min→○6.5Force Push Safely--force-with-lease vs --force — one is safe, one is dangerous, when acceptable
14 min→○6.6Forking WorkflowContribute to open source — fork, upstream sync, PR to someone else's repo
18 min→○6.7Multiple Remotes — origin, upstream, herokuOne project, three remotes — how to manage, where to push
16 min→○6.8Remote Branch Cleanup — PruneBranch deleted on remote but still shows locally — git fetch --prune fixes it
12 min→Remote WinnerFull confidence on GitHub — became a team player, can contribute to open source!
Stage 7
Debug Level
Debugging — Detective○7.1
git blame — Who Wrote This-L range for specific lines, -w ignore whitespace, date and author in one place
14 min→○7.2git bisect — Binary SearchFind bug in 200 commits — 8 steps, practically understand log2(200) magic
22 min→○7.3git bisect run — Automatedbisect run ./test.sh — automatic bisect with a script, no manual clicking
16 min→○7.4git log Power Tricks--author --since --grep -S --follow -p -- find any commit in history
18 min→○7.5Finding Lost Code — Pickaxe Search-S and -G find even deleted code — git log's most underrated feature
14 min→○7.6git clean — Remove Untracked-n dry run first, -fd actual clean — build files, node_modules all in one command
12 min→○7.7git fsck — Repair Corrupted RepoDangling commits, corrupted objects — check with fsck, then plan recovery
14 min→Git DetectiveFinding bugs is now fun — find the culprit in 8 steps across 200 commits!
Stage 8
Hooks Level
Automation — Quality Gates○8.1
What are Git HooksScripts inside .git/hooks/ — client side vs server side, when they trigger
14 min→○8.2pre-commit HookLint check, format, block console.log — quality gate before commit
18 min→○8.3commit-msg HookEnforce conventional commits format — feat: fix: chore: pattern validation
16 min→○8.4pre-push HookRun tests before push — fail blocks push, local check before CI
16 min→○8.5Husky + lint-stagedTeam-wide hooks in npm project — only staged files linted, fast and automatic
20 min→○8.6prepare-commit-msg HookAuto-inject ticket number from branch name into commit — save time
14 min→○8.7post-merge Hooknpm install runs automatically when package.json changes — auto-sync after merge
12 min→○8.8Server-Side Hookspre-receive, update, post-receive — GitHub Actions vs server hooks, when to use what
16 min→Hooks Automation DevHooks configured — bad code can't commit now. Team quality maintained automatically!
Stage 9
Internals Level
Git Internals — Deep○9.1
The Object Model — blobs, trees, commitsEvery file is a blob, every folder is a tree, commit links everything — see in .git/objects/
22 min→○9.2How Commits Link — SHA chainEach commit stores parent SHA — like blockchain, immutable history
18 min→○9.3reset soft vs mixed vs hardExactly what changes — working dir, staging, HEAD — three modes clearly explained
20 min→○9.4Detached HEAD StateHEAD not pointing to a branch — what happens, how to exit, save your work
16 min→○9.5gc & reflog ExpiryWhen are commits actually deleted — gc.reflogExpire, danger of prune=now
14 min→○9.6.git Directory Deep StructureHEAD, ORIG_HEAD, MERGE_HEAD, config, hooks, refs — purpose of each file
18 min→○9.7Plumbing Commands — cat-file, hash-objectWhat's underneath porcelain commands — use Git raw API directly
20 min→○9.8git worktree — Multi-Branch CheckoutSame repo, different folders, different branches — zero context switching
16 min→Git Internals ExpertInside Git! Blob, tree, commit all understood. Everyone impressed in interviews!
Stage 10
Real World Level
Expert — Production○10.1
API Key Committed to Public RepoRotate key first — then clean history with filter-repo, update .gitignore, set hooks
22 min→○10.2Someone Force Pushed MainRescue with reflog, sync team, enable branch protection — step by step
20 min→○10.3Monorepo PerformanceShallow clone, sparse checkout, git maintenance start — make 10GB repo fast
20 min→○10.4Long Running PR Conflicts3-week-old PR — rebase per-commit, split it, use feature flags
18 min→○10.5CI Clone OptimizationEvery build does full clone — depth 1, branch-only fetch, .git cache strategy
16 min→○10.6Git Submodules — Setup & NightmaresNested repo workaround — update, foreach, detached HEAD problem and solutions
22 min→○10.7Git Subtree — AlternativeSimpler than submodule — subtree add, pull, push, split — when to prefer
18 min→○10.8Git LFS — Large FilesImages, videos, models go to LFS — pointer in repo, binary stored elsewhere
16 min→○10.9Conventional Commits Standardfeat: fix: chore: BREAKING CHANGE: — auto-generate changelogs, connect semantic versioning
16 min→○10.10Tags, Releases & Semantic Versioningv1.2.3 meaning — major.minor.patch, annotated vs lightweight tags, GitHub releases
18 min→Git Ninja DevComplete Git course! Senior devs will ask you now — you're a Git God!
Oh Shit Room — Disaster Recovery
Reflog se kuch bhi recover hota hai. Committed to wrong branch? Pushed bad code? 9 chapters sirf disasters fix karne ke liye — tujhe koi Git problem nahi rokegi bhai.
Traps Tab — Har Chapter Mein
rebase public branch pe mat karna. fetch 404 pe error nahi deta. force push --force-with-lease use karo. Ye sab traps har chapter mein explain hoti hain — pehle se jaano bhai.
Internals + Real World Both
Blob, tree, commit ka andar bhi samjho aur production pe API key commit ho gayi toh kya karo bhi seekho. Theory aur practice dono — 10 stages mein complete coverage bhai.