Git is the de facto version control system in software engineering. Understanding Git deeply — from its internal data model to advanced workflows — is essential for technical interviews and real-world engineering.
Every software company uses version control
Git knowledge is tested in interviews (directly and indirectly)
Understanding Git internals demonstrates systems thinking
Branching strategies affect team productivity and deployment safety
Git is a content-addressable filesystem — understanding it teaches fundamental CS concepts
Topic Description
Git Internals Objects, refs, HEAD, index, packfiles
Git Fundamentals init, clone, add, commit, status, log, diff
Branching & Merging branches, merge, fast-forward, merge conflicts
Rebasing rebase, interactive rebase, rebase vs merge
Stashing stash, stash pop, stash apply, stash branch
Advanced Operations cherry-pick, revert, reset, reflog, bisect
Remote Operations fetch, pull, push, remote tracking, upstream
Tags & Releases lightweight tags, annotated tags, semver
Git Hooks pre-commit, pre-push, commit-msg, server-side
Worktrees & Submodules worktree management, submodule workflows
Git Workflows trunk-based, GitFlow, GitHub Flow, release strategies
GitHub & Code Review PRs, code review, branch protection, Actions
Git Interview Questions common questions, traps, scenarios
Git Cheat Sheet quick reference for all commands
Working Directory → Staging Area (Index) → Repository (.git) → Remote
(files) (git add) (git commit) (git push)
Concept Description
Blob Stores file content (not filename)
Tree Maps filenames to blobs (like a directory)
Commit Points to a tree + metadata (author, message, parent)
Ref A pointer to a commit (branch, tag, HEAD)
Index Staging area between working tree and repository
HEAD Special ref pointing to the current branch/commit