Git: 50 Essential Commands for Everyday Workflow

git:-50-essential-commands-for-everyday-workflow

Git is a distributed version control system (DVCS) created by Linus Torvalds in 2005 to manage the Linux kernel’s source code. Unlike centralized systems, Git keeps a complete history of your project on every developer’s machine, making it easy to revert, branch, and merge changes no matter your workflow.

Below is a reorganized, step-by-step guide to the 50 Git commands you’ll use most often, grouped by category. You’ll find concise explanations, usage examples, and tips so you can copy-and-paste as you learn.

📋 1. Configuration

Before you start, tell Git who you are:

# View all settings (name, email, cache, editor, etc.)
git config -l

# Set your name (appears in commits)
git config --global user.name "Your Name"

# Set your email (appears in commits)
git config --global user.email "you@example.com"

# Cache HTTPS credentials (default: 15 minutes)
git config --global credential.helper cache

# Change the cache timeout (in seconds), e.g., 1 hour:
git config --global credential.helper 'cache --timeout=3600'

🌱 2. Creating a Repository

Initialize a new project:

# In your project folder, start tracking with Git
git init

➕ 3. Staging Changes

Prepare your work for committing:

# Add ONE file
git add filename.txt

# Add ALL files (new, modified, deleted)
git add .

# Add only files matching a pattern, e.g., all “app-” files
git add app-*

# Interactive staging: choose hunks to stage
git add -p

✔️ 4. Checking Status & Differences

Inspect what you’ve modified:

# Show staged vs. unstaged vs. untracked
git status

# Show unstaged changes in working directory
git diff

# Show staged changes ready to commit
git diff --staged

# Show changes for a specific file
git diff path/to/file.py

💾 5. Committing

Record your changes in project history:

# Open your editor to write a multi-line message
git commit

# One-line commit message
git commit -m "Short summary of changes"

# Stage AND commit modified files in one go
git commit -a -m "Fix typo in README"

📜 Viewing Commit History

# Simple log
git log

# Log with patch (diffs)
git log -p

# Log with stats (lines and file names changed)
git log --stat

# One-line, ASCII graph of commits
git log --graph --oneline

🔍 Inspecting a Single Commit

# Show full details of a specific commit
git show 

🔄 6. Undoing & Amending

# Revert unstaged changes in working directory
git checkout -- filename.txt

# Unstage a file (keep working-dir changes)
git reset HEAD filename.txt

# Unstage interactively
git reset -p

# Amend last commit (modify message or include new changes)
git commit --amend

# Create a “reverting” commit that undoes a specific commit
git revert 

# Roll back latest commit by reverting HEAD
git revert HEAD

⚠️ Caution: Avoid --amend on commits you’ve already pushed, as rewriting history can confuse collaborators.

🌿 7. Branching & Merging

# List all local branches
git branch

# Create a new branch
git branch feature/login

# Switch to another branch
git checkout feature/login

# Create + switch in one command
git checkout -b feature/signup

# Delete a local branch (after merging)
git branch -d old-branch

# Merge another branch into your current one
git merge feature/login

# Abort a conflicted merge
git merge --abort

🔗 8. Working with Remotes

Link your local repo to a shared server (GitHub, GitLab, Bitbucket):

# Add a remote named “origin”
git remote add origin https://github.com/you/repo.git

# List remote URLs
git remote -v

# Show detailed info about a remote
git remote show origin

# Download from remote without merging
git fetch

# Download + merge (shorthand)
git pull

# Upload commits to remote
git push

# Push a new branch and set upstream
git push -u origin feature/login

# Delete a remote branch
git push --delete origin old-branch

🔄 9. Rebasing (Advanced)

Rebase lets you “replay” commits from one branch onto another:

# Non-interactive rebase onto master
git rebase master

# Interactive rebase (reorder, squash, edit)
git rebase -i master

Tip: Rebasing gives you a cleaner, linear history—but avoid rebasing public branches.

🎯 10. Miscellaneous Tips

# View remote-tracking branches
git branch -r

# Show log of remote main branch
git log origin/main

# Update all remotes without merging
git remote update

# Force-push (careful: overwrites remote!)
git push -f

🚀 Conclusion

With these 50 commands, you have a solid foundation to:

  • Configure Git for your identity
  • Stage and commit changes efficiently
  • Branch, merge, and even rebase safely
  • Collaborate using remotes and pull/push workflows

Bookmark this list, try them in a test repo, and soon they’ll become second nature. Happy coding!

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
build-smart-ai-chatbot-with-open-ai-assistant-in-few-minutes!

Build smart AI chatbot with Open AI assistant in few minutes!

Next Post
aws-kms-vs.-aws-certificate-manager:-the-ultimate-guide-to-cloud-security-layers

AWS KMS vs. AWS Certificate Manager: The Ultimate Guide to Cloud Security Layers

Related Posts