Git has its own vocabulary — and knowing these words is not just about understanding git commands. It is about understanding your team’s conversations: in pull request reviews, in standups (“I need to rebase on main”), in postmortems (“the force push overwrote the release commit”).
Here are the 30 Git terms that come up most in real team communication.
Core Concepts
Repository (repo)
The folder containing your project’s complete history. You have a local repo (on your computer) and a remote repo (on GitHub, GitLab, etc.). Phrase: “Can you push that to the remote repo?”
Commit
A saved snapshot of changes. Each commit has a unique SHA hash, a message, an author, and a timestamp. Phrase: “I’ll make a small commit after each logical change so the history is readable.”
Branch
A parallel line of development. You create a feature branch to work in isolation without affecting main. Phrase: “I’m working on a feature branch — haven’t merged yet.”
Main / Master
The primary branch of a repository. Modern repos default to main; older repos use master. Phrase: “The PR targets main — please review before merging.”
HEAD
A pointer to whatever commit you currently have checked out. Phrase: “HEAD is at commit a1b2c3d.”
Daily Workflow
Stage / Index
Before committing, you stage (or add) the changes you want to include. The staging area is also called the index. Phrase: “I’ve staged the relevant files — review with git diff --cached.”
Push / Pull
Push sends your local commits to the remote. Pull fetches remote changes and merges them locally (fetch + merge). Phrase: “Please pull before you push — there have been changes on main.”
Fetch
Downloads changes from the remote without automatically merging them into your working branch. Safer than pull when you want to inspect changes first. Phrase: “I’ll fetch and then decide whether to merge or rebase.”
Clone
Creates a full local copy of a remote repository. Phrase: “Clone the repo, then run npm install.”
Checkout
Switches to a different branch or commit. Phrase: “Checkout the feature/auth branch to test the new login flow.”
Branching & Merging
Merge
Integrates the history of one branch into another, creating a merge commit that records where the two histories joined. Phrase: “We’ll merge the feature branch after code review.”
Rebase
Replays your commits on top of another branch’s latest commit, producing a linear history. Phrase: “Rebase onto main before opening the PR — you have a conflict with the recent changes.”
Fast-forward
A merge where no merge commit is needed — the target branch pointer simply moves forward along the source branch’s commits. Phrase: “This was a clean fast-forward merge — no conflicts.”
Conflict / Merge conflict
When Git cannot automatically combine two sets of changes to the same line(s). You resolve conflicts manually. Phrase: “I got a conflict in package-lock.json — I’ll resolve it and push.”
Squash
Combines multiple commits into one. Often done before merging a feature branch to keep the history clean. Phrase: “Please squash your commits — I don’t need to see five ‘WIP’ messages.”
Advanced Operations
Stash
Temporarily saves uncommitted changes so you can switch branches without committing. Phrase: “I’ll stash my current work and check out their branch to reproduce the issue.”
Cherry-pick
Applies a specific commit from one branch onto another, without merging the entire branch. Phrase: “Cherry-pick the hotfix commit onto the release branch.”
Revert
Creates a new commit that undoes the changes of a previous commit — safe because it does not rewrite history. Phrase: “We reverted the deploy commit — that undoes the breaking change without losing the git history.”
Reset
Moves the branch pointer to a different commit, optionally clearing the staging area or working directory. Use with caution — --hard discards uncommitted work. Phrase: “I did a hard reset to get back to a clean state.”
Bisect
Uses binary search to find the commit that introduced a bug. Phrase: “I used git bisect to narrow it down to a commit from last Tuesday.”
Pull Requests & Collaboration
Pull Request (PR) / Merge Request (MR)
A proposal to merge one branch into another, used for code review. GitHub uses “Pull Request”; GitLab uses “Merge Request”. Phrase: “I’ve opened a PR — requesting review from @alice and @bob.”
Review / Approve / Request changes
Actions a reviewer takes on a PR: approve (ready to merge), request changes (must fix before merge), comment (feedback, not blocking). Phrase: “The PR has two approvals but one request for changes — address the feedback first.”
Fork
A personal copy of someone else’s repository, used in open-source contribution workflows. Phrase: “Fork the repo, make your changes, then open a PR against the original.”
Tag
A named reference to a specific commit, typically used for releases. Phrase: “We tag every release with a semantic version — e.g. v2.3.0.”
CI / Checks
Automated tests and linting that run against every PR. Phrase: “The CI checks are failing on your branch — please fix before we merge.”
Patterns & Strategies
Git Flow
A branching strategy using main, develop, feature/*, release/*, and hotfix/* branches. Common in larger teams. Phrase: “We follow Git Flow — hotfixes go directly to main and get back-merged to develop.”
Trunk-based development
A strategy where everyone commits to main (the trunk) frequently, with feature flags for incomplete features. Common in high-velocity teams. Phrase: “We do trunk-based development — no long-lived feature branches.”
Semantic versioning (semver)
A numbering scheme: MAJOR.MINOR.PATCH. Breaking changes → bump major. New features → minor. Bug fixes → patch. Phrase: “This is a breaking API change — we need to bump the major version.”
These 30 terms will carry you through 95% of Git conversations on any team. The next step: practise using them in context with our Git vocabulary exercises.
In Practice: Navigating Nuances for Non-Native Speakers
Let’s be honest – even experienced developers sometimes stumble over Git terminology. But for those whose first language isn’t English, the subtleties of phrasing around version control can feel particularly challenging. It’s not just about knowing what a command does; it’s understanding how to communicate effectively about it, especially when collaborating with international teams. A simple “fix” can be perceived very differently depending on how it’s framed. Consider this scenario: Sarah is reviewing a pull request submitted by David from Germany. David has implemented a new feature for handling user authentication but includes some comments in the code that are phrased rather directly – “This section needs to be more readable.” Sarah, who is learning English as a second language, might interpret this as criticism of her work, even if it’s intended as constructive feedback.
The key difference often lies in the directness of communication. In many cultures, particularly those influenced by East Asian or German traditions, expressing disagreement directly can be considered impolite. Therefore, using softer, more descriptive language is crucial when providing feedback. Instead of saying “This needs to be fixed,” a better approach would be: “Could we explore alternative formatting options for this section to improve readability and maintain consistency with the overall project style guide?” Similarly, when describing the purpose of a commit message, avoid simply stating what you did. Explain why you made those changes – “Refactored authentication logic to adhere to security best practices as outlined in the team documentation” is far more informative than “Fixed authentication.”
Another common area of confusion stems from the concept of ‘upstream’ versus ‘local.’ Understanding this distinction when communicating about merging or rebasing can avoid significant headaches. If you’re asking someone to “pull upstream,” ensure they understand you’re requesting them to update their local branch with the latest changes from the main repository, rather than simply asking them to replace their entire working copy with a new one. Clear communication is paramount when resolving conflicts or coordinating workflow across multiple branches.
Finally, remember that Git terminology itself can be complex and subtly different in its usage depending on the team’s conventions. Don’t hesitate to ask for clarification – it’s always better to err on the side of asking than making assumptions based on your understanding. The goal isn’t just technical proficiency, but also clear and respectful communication within the development process.
git checkout main # Example: Fetching the latest updates from the remote repository. Keep practising
Turn this article into muscle memory
Five-minute exercises with instant feedback — built from the same kind of real IT language.
What to read next
Frequently asked questions
What will I learn from "Git Vocabulary Every Developer Needs to Know"?
This is a Beginner-level Vocabulary article covering vocabulary, git, frontend and backend. Commit, branch, merge, rebase, cherry-pick, stash — the 30 Git terms you will encounter in every day team communication and code reviews.
Is this article free to read?
Yes. Every article on CoderSlingo, including this one, is free to read with no account, sign-up, or paywall.
How is reading this article different from doing an exercise?
Articles like this one explain concepts and vocabulary in context through prose, while exercises are interactive drills — fill-in-the-blank, matching, and multiple-choice — that test and reinforce specific terms. Reading builds understanding; exercises build recall.
Can I practice the vocabulary used in this article?
Yes — this article's topic lines up with our vocabulary exercises. Use the "Practice this vocabulary" link below to jump straight into a matching drill.
How long does "Git Vocabulary Every Developer Needs to Know" take to read?
About 5 min. Most CoderSlingo articles, including this one, are written to be read in one sitting, without needing a dictionary open in another tab.
Do I need to create an account to read or save this article?
No account is required to read any article. If you complete exercises elsewhere on the site, your progress is saved locally in your browser — no login needed.
What if I don't understand a technical term used in this article?
Check the site Glossary for plain-English definitions of common IT terms, or browse the #vocabulary tag page for other Vocabulary articles that use the same vocabulary in different contexts.
Can I share or link to "Git Vocabulary Every Developer Needs to Know"?
Yes — use the Twitter/X or LinkedIn share buttons at the end of the article, or copy the page URL directly. Attribution back to CoderSlingo is appreciated but the content is free to reference.
When was this Vocabulary article published?
This article was published in 2026. New Vocabulary articles are added regularly — visit the #vocabulary tag page to see the full, continuously updated list.
Where can I find more articles like this one?
See "WebAssembly Vocabulary: Wasm, WASI, and the Runtime Model Explained", "Senior Distributed Systems Engineer English: Consensus, CRDTs, and CAP Theorem Vocabulary", "English for PocketBase Developers" in the Related Articles section below, or browse all Vocabulary articles from the main Blog index.