Term
Definition
Version Control
System that tracks changes to files over time so you can recall specific versions later. Lets multiple people work on the same code without overwriting each other’s work.
Git
Distributed version control system where every developer has full copy of repository. Most popular version control system used in software development.
Repository (Repo)
Folder that contains your project files and the entire history of changes. Can be local on your computer or remote on services like GitHub.
Commit
Snapshot of your project at a specific point in time. Includes a message describing what changed and why.
Branch
Separate line of development that lets you work on features without affecting main code. Allows multiple people to work on different features simultaneously.
Merge
Combines changes from one branch into another. Brings your feature work back into the main codebase.
Pull Request (PR)
Request to merge your changes into another branch. Allows team to review code before it gets merged.
Clone
Creates a local copy of a remote repository on your machine. Downloads entire project history and files.
Push
Uploads your local commits to a remote repository. Shares your work with others.
Pull
Downloads changes from remote repository and merges them into your local branch. Updates your code with other people’s work.
Fetch
Downloads changes from remote repository but doesn’t merge them. Lets you see what changed before deciding to merge.
Staging Area (Index)
Intermediate area where you prepare commits. Lets you choose which changes to include in next commit.
Working Directory
Folder on your computer where you make changes to files. Your actual project files you’re editing.
Remote
Version of your repository hosted on the internet or network. Usually on GitHub, GitLab, or Bitbucket.
Origin
Default name for the remote repository you cloned from. Shorthand so you don’t have to type full URL every time.
HEAD
Pointer to the current branch and commit you’re on. Tells git where you are in the project history.
Main (or Master)
Default primary branch where production-ready code lives. Used to be called master, now commonly called main.
Checkout
Switches between branches or restores files from history. Changes what code you’re looking at in working directory.
Stash
Temporarily saves uncommitted changes so you can work on something else. Useful when you need to switch branches but aren’t ready to commit.
Merge Conflict
Happens when git can’t automatically combine changes from different branches. You have to manually decide which changes to keep.
Rebase
Moves or combines commits from one branch onto another. Rewrites commit history to make it cleaner.
Tag
Marks specific point in history as important. Usually used for release versions like v1.0 or v2.3.
.gitignore
File that tells git which files or folders to ignore. Prevents accidentally committing sensitive data or build files.