Essential Git Commands for Developers
Git is the backbone of modern software development. Whether you're building websites, mobile apps, machine learning models, or full-scale SaaS platforms, Git keeps your code safe, trackable, and shareable.
But most beginners only learn a few commands — and miss out on the real power Git provides.
This guide teaches the essential Git commands every developer must know, explained simply, with real-world use cases.
1. What Is Git and Why It Matters
Git is a version control system that:
- ✔ Tracks every change
- ✔ Lets you undo mistakes
- ✔ Helps teams collaborate
- ✔ Allows branching and experimenting safely
- ✔ Stores your code online (GitHub/GitLab/Bitbucket)
Even if you're working alone, Git is your safety net.
2. Setting Up Git
Check Git version:
git --versionConfigure your information:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"This info shows up in commits.
3. Initialize a New Repository
Create a new Git repo inside your project:
git initThis creates a .git folder — the brain of your repository.
4. Checking Status of Your Code
Before committing, always check what changed:
git statusIt tells you:
- Which files changed
- Which files are staged or unstaged
- If you're ahead/behind remote
5. Adding Files
Add a single file:
git add file.jsAdd ALL files:
git add .This stages your changes for commit.
6. Creating Commits
A commit is a snapshot of your code.
git commit -m "Add login feature"Good commit messages:
- ✔ Short
- ✔ Clear
- ✔ Action-based ("Fix bug", "Add feature")
7. Viewing Commit History
git logFor a cleaner history:
git log --onelineThis is useful when debugging or understanding project evolution.
8. Creating and Switching Branches
Branches let you experiment without breaking main code.
Create a branch:
git branch feature-uiSwitch to it:
git checkout feature-uiCreate and switch:
git checkout -b feature-ui9. Merging Branches
When your feature is ready:
1. Switch to main branch
git checkout main2. Merge feature branch
git merge feature-uiIf there are conflicts, fix them manually in your editor.
10. Cloning Repositories
Clone a project from GitHub:
git clone https://github.com/user/project.gitThis downloads the entire repo to your computer.
11. Pushing Code to GitHub
Connect to a remote:
git remote add origin https://github.com/user/project.gitPush your code:
git push -u origin mainAfter the first push:
git push12. Pulling Latest Changes
Get new updates from the online repo:
git pullEquivalent to:
- fetch (download)
- merge (apply)
13. Stashing Work
Need to switch branches but not ready to commit?
Use stash:
git stashRestore work later:
git stash popPerfect for multitasking.
14. Undoing Mistakes (Lifesavers)
Unstage a file:
git reset HEAD file.jsUndo last commit (keep changes):
git reset --soft HEAD~1Undo last commit completely:
git reset --hard HEAD~1⚠️ Hard reset is destructive — use carefully.
15. Deleting Branches
Delete local branch:
git branch -d feature-uiForce delete:
git branch -D feature-ui16. Best Practices for Developers
- ✔ Commit small changes often
- ✔ Use meaningful commit messages
- ✔ Keep main clean, stable, deploy-ready
- ✔ Create feature branches
- ✔ Pull before pushing
- ✔ Use .gitignore to clean your repo
Add .gitignore file quickly:
npx gitignore node
npx gitignore pythonConclusion
Whether you're a beginner or building production apps, mastering Git is non-negotiable.
These essential commands will help you:
- ✔ Work faster
- ✔ Collaborate better
- ✔ Avoid disasters
- ✔ Build cleaner projects
And once Git becomes part of your muscle memory, coding becomes smoother, safer, and far more professional.