Skip to main content

Everyday Git Commands That Actually Works

· 6 min read
Sivabharathy

The only Git guide you need for 95% of your daily development workflow. Save this post or bookmark it — it’s your quick-fix toolkit for everyday Git challenges.


Why This Guide​

Git can feel complicated when you are managing multiple branches, commits, and conflicts. Whether you are a developer, team lead, or project manager, this post walks through real-world Git scenarios and commands that actually work, not just theory.


Starting with a Project​

Example: You just joined a new project​

Your teammate shares a GitHub repository link.

git clone https://github.com/team/project.git
cd project

This downloads the full project and takes you into the project folder.

Example: Switching to the branch you are assigned to​

You were told to work on the feature/login branch.

git switch feature/login

The switch command is a modern and simpler alternative to checkout.

Example: Get the latest updates from your team​

Always pull the latest code before starting work for the day.

git pull

This fetches and merges new changes from the remote repository.


Working with Code​

Example: Check what you have changed so far​

Before committing, check your modifications.

git status

This shows modified and untracked files. Use it frequently to stay aware of your workspace state.

Example: Save your work with a clear message​

git add .
git commit -m "Added login form validation"

Write meaningful commit messages so that your team can understand the context later.

Example: Push your work to GitHub​

git push

Your local commits are now uploaded to the remote repository.

Example: Commit only specific files​

If you fixed a bug in auth.js but do not want to include other changes:

git add auth.js
git commit -m "Fix token validation logic"

This keeps commits clean and focused.

Example: Unstage a file added by mistake​

git restore --staged package-lock.json

This removes the file from staging without deleting it.


Working with Branches​

Example: Create a new feature branch​

You are starting a new feature called user dashboard.

git switch -c feature/user-dashboard

This creates and switches to the new branch.

Example: Delete a branch you no longer need​

After merging feature/user-dashboard:

git branch -d feature/user-dashboard

If Git prevents deletion because it is not merged:

git branch -D feature/user-dashboard

To delete the branch from the remote repository:

git push origin --delete feature/user-dashboard

Example: Rename your branch​

git branch -m feature/dashboard-ui
git push origin -u feature/dashboard-ui
git push origin --delete old-branch-name

Fixing Your Mistakes​

Example: Revert files back to the last commit​

git restore .

To revert a single file:

git restore app.js

Example: Forgot to add a file in your last commit​

git add config.js
git commit --amend --no-edit

This updates the last commit without changing its message.

Example: Change your last commit message​

git commit --amend -m "Fix: update production configuration"

Example: Undo the last commit but keep your changes​

git reset --soft HEAD~1

Your changes remain in your working directory.

Example: Undo the last commit and discard changes​

git reset --hard HEAD~1

Be careful — this permanently removes your changes.

Example: Fix a commit already pushed​

You can still amend it if it is your own branch.

git commit --amend
git push --force

Avoid using force push on shared branches.


Working with Others​

Example: Pull teammates’ changes​

git pull

This brings new updates from the remote branch.

Example: Pull not working due to local changes​

Temporarily save your work before pulling.

git stash
git pull
git stash pop

Your local changes are safely reapplied after pulling.

Example: Resolve merge conflicts​

  1. Open the files with conflicts.

  2. Look for the markers:

    <<<<<<< HEAD
    your code
    =======
    their code
    >>>>>>> branch-name
  3. Choose the code to keep and delete the markers.

  4. Save the file and run:

    git add .
    git merge --continue

To cancel the merge:

git merge --abort

Example: Update your branch with the main branch​

git switch main
git pull
git switch feature/login
git merge main

Fix conflicts, then run:

git add .
git merge --continue
git push

Some Advanced Techniques​

Example: Combine multiple small commits into one​

You made several small commits that can be combined.

git reset --soft HEAD~3
git commit -m "Fix login validation issues"
git push --force

This results in a single, clean commit.

Example: Copy a specific commit from another branch​

git log
git cherry-pick a1b2c3d

This brings the specified commit into your branch.

Example: Rebase to update your branch cleanly​

git pull --rebase

This avoids unnecessary merge commits and keeps history linear.

If conflicts occur:

git add <files>
git rebase --continue

To cancel the rebase:

git rebase --abort

Emergency Help​

Example: Revert a bad commit that was already pushed​

git revert <commit-code>
git push

This safely undoes the commit by creating a new one.

Example: Make your branch identical to another branch​

git reset --hard origin/main

This resets your branch completely to match the remote main branch. Be cautious, as this deletes all local changes.

Example: Recover deleted commits​

git reflog

Find the commit and restore it:

git cherry-pick <commit-code>

Quick Reference​

# Check current changes
git status

# Save and push work
git add .
git commit -m "message"
git push

# Pull latest updates
git pull

# Create and switch branches
git switch -c <branch>
git switch <branch>

# Undo changes
git restore .

# Temporarily save and restore work
git stash
git stash pop

Common Problems and Fixes​

Problem: Your branch has diverged

git pull --rebase

Problem: Merge conflict Fix conflicts manually, then run:

git add <file>
git merge --continue

Problem: Permission denied Check your SSH credentials or repository access.

Problem: Forgot to commit before switching branches

git stash
git switch <branch>
git stash pop

Final Tip​

When unsure, always run:

git status

It will tell you exactly what Git expects next and help you stay in control of your workflow.


Conclusion​

Git does not have to be difficult. By practicing these commands daily and understanding what each one does, you can handle almost every common Git issue confidently and efficiently. Keep this guide handy and share it with your teammates whenever Git issues arise.