Sheet ⁨02⁩ · ⁨Blog⁩Surveyed ⁨2026⁩

Blog post image for 10+ Secret Git Commands That Will Save Hours Every Week - Discover 10+ secret Git commands that will save hours every week! Learn advanced Git techniques for undoing mistakes, managing commits, automating workflows, and optimizing repositories. Perfect for DevOps and GitHub users.

10+ Secret Git Commands That Will Save Hours Every Week

Published: 04 Mins read08 Mins listen
Markdown for AI(opens in a new tab)

Introduction

As a software engineer, DevOps engineer, or GitHub user, you probably use Git daily. But are you making the most of it? Git is packed with commands that can save you hours of manual work every week. In this guide, we’ll look at 10+ lesser-known but very useful Git commands that simplify your workflow and cut out repetitive steps.

Each command is grouped by use case, with a real-world scenario for each one so you can apply it immediately.


Undoing changes like a pro

1. git reflog

Recover lost commits.

It tracks all actions performed in your repository, including resets and rebases.

Use it when you accidentally delete a branch or reset commits and need to recover them.

Imagine you are working on a critical feature and accidentally run git reset --hard, losing your latest commit. Instead of panicking, you can recover your work by running:

Terminal window
git reflog

Find the commit hash of the lost state and recover it with:

Terminal window
git reset --hard <commit-hash>

Now your work is back!

2. git reset --soft HEAD~1

Undo the last commit but keep the changes.

It removes the last commit but keeps the changes staged.

Use it when you commit something too soon but don’t want to lose your changes.

You just committed a file but realized you forgot to add an important change. Instead of creating another commit, you can undo the last commit while keeping your changes staged:

Terminal window
git reset --soft HEAD~1

Now your changes are still staged, and you can amend them!

3. git restore

Revert modified files.

It restores modified files to their last committed state.

Use it when you accidentally modify or delete files and need to revert them.

You mistakenly changed a config file and need to revert it to its last committed state. Instead of re-cloning the repo, you can simply run:

Terminal window
git restore <filename>

Your file is now back to its last committed version.


Managing branches efficiently

4. git switch

Switch branches quickly.

It moves you between branches without the rest of what git checkout does.

Use it when you are working on multiple features and need to jump between branches frequently.

You are working on multiple features and need to switch between branches frequently. Instead of using git checkout every time, you can use:

Terminal window
git switch feature-branch

Faster and cleaner than git checkout!

5. git worktree

Work on multiple branches at the same time.

It lets you check out multiple branches in separate directories.

Use it when you need to work on multiple branches without switching context.

You need to review a PR while working on a feature. Instead of stashing your changes, you can run:

Terminal window
git worktree add ../review-pr feature-branch

Now you have both branches available in different directories!

6. git rebase -i HEAD~<number-of-commits>

Clean up commit history.

It rewrites commit history interactively.

Use it when cleaning up commit history before merging a branch.

Your feature branch has 10 messy commits. Instead of merging them all, you can run:

Terminal window
git rebase -i HEAD~10

Pick, squash, or edit commits for a cleaner history!


Managing commits like a boss

7. git cherry-pick

Apply specific commits to another branch.

It copies one commit onto the branch you have checked out.

Use it when you need to apply a hotfix from one branch to another.

A bugfix commit exists in dev but is needed in main. Instead of merging everything, you can apply the specific commit:

Terminal window
git cherry-pick <commit-hash>

8. git commit --amend

Modify the last commit.

It changes the last commit message, or folds more changes into it.

Use it when you make a small mistake in a commit.

You committed with the wrong message. Instead of creating a new commit, you can amend the last commit message:

Terminal window
git commit --amend -m "Corrected commit message"

No need for an extra commit!

9. git range-diff

Compare commit ranges.

It diffs two ranges of commits against each other.

Use it when reviewing a rebase before pushing changes.

Before force-pushing a rebased branch, you want to verify the changes. You can compare the commit ranges:

Terminal window
git range-diff origin/main HEAD

That way nothing important gets lost.


Managing the working directory

10. git stash

Save uncommitted changes temporarily.

It parks your uncommitted changes and leaves you a clean working tree.

Use it when switching branches but keeping your work.

You need to check out main, but have unfinished work. Instead of committing incomplete changes, you can stash them:

Terminal window
git stash

Switch branches, then restore it with:

Terminal window
git stash pop

11. git sparse-checkout

Check out specific parts of a repository.

It limits your working tree to the paths you ask for.

Use it when dealing with large monorepos.

You are working with a large monorepo and only need specific directories. Instead of cloning everything, you can initialize sparse-checkout:

Terminal window
git sparse-checkout init --cone

Then include specific folders:

Terminal window
git sparse-checkout set backend/

Debugging and auditing code

12. git bisect

Find the commit that introduced a bug.

It binary-searches your history for the commit that broke things.

Use it when debugging regressions.

A feature broke, but you don’t know when. You can automate the search for the bad commit:

Terminal window
git bisect start

Mark bad and good commits, and Git will find the culprit!

13. git blame

Identify who modified each line.

It shows who last touched each line in a file, and in which commit.

Use it when investigating why a piece of code changed.

You found a bug in a file and want to know who last modified it. You can run:

Terminal window
git blame config.yaml

Now you know whom to ask!


Conclusion

Learn these Git commands and you will save hours every week, mostly by not redoing work you already did once. Whether you are a software engineer, DevOps engineer, or GitHub user, they cover undoing changes, managing branches, tidying up commits, and debugging.


References

  1. Pro Git book - Scott Chacon and Ben Straub. https://git-scm.com/book/en/v2
  2. Git Documentation - Official Git SCM. https://git-scm.com/doc
  3. Atlassian Git Tutorial. https://www.atlassian.com/git/tutorials
  4. git reflog - Git SCM. https://git-scm.com/docs/git-reflog
  5. git reset - Git SCM. https://git-scm.com/docs/git-reset
  6. git restore - Git SCM. https://git-scm.com/docs/git-restore
  7. git switch - Git SCM. https://git-scm.com/docs/git-switch
  8. git worktree - Git SCM. https://git-scm.com/docs/git-worktree
  9. git rebase - Git SCM. https://git-scm.com/docs/git-rebase
  10. git cherry-pick - Git SCM. https://git-scm.com/docs/git-cherry-pick
  11. git stash - Git SCM. https://git-scm.com/docs/git-stash
  12. git sparse-checkout - Git SCM. https://git-scm.com/docs/git-sparse-checkout
  13. git bisect - Git SCM. https://git-scm.com/docs/git-bisect
  14. git blame - Git SCM. https://git-scm.com/docs/git-blame
  15. GitHub Guides. https://guides.github.com/

Was this useful?

You might also enjoy

More posts on similar topics

Dotfiles: A Git-Based Strategy for Configuration Management

Dotfiles: A Git-Based Strategy for Configuration Management

Introduction Your dotfiles, those hidden .-prefixed configuration files scattered across your home directory, are the muscle memory of your environment. They hold your shell aliases, your editor

Customization Windows Terminal With Starship

Customization Windows Terminal With Starship

Introduction In this article, we will install PowerShell and Starship, configure Windows Terminal, and then customize it with Starship. What is Windows Terminal? Windows Terminal is a modern

VIM Cheat Sheet

VIM Cheat Sheet

What is VIM? VIM (Vi Improved) is a versatile text editor pre-installed on most Linux systems, known for its efficiency in command-line file editing. Its modal nature, switching between modes like

GitHub Actions vs. GitLab CI for Monorepos: Which One Wins?

GitHub Actions vs. GitLab CI for Monorepos: Which One Wins?

The world of building software is always changing, and how teams organize their code can really affect how well they work. One way that's become pretty popular is using a monorepo. That's just keeping

Streamlining GitHub Organization Management with Terraform

Streamlining GitHub Organization Management with Terraform

Managing a GitHub organization manually can become increasingly complex as teams grow and projects multiply. For DevOps and DevSecOps engineers, automation is how you keep things consistent and cut do

Understanding Software Versioning

Understanding Software Versioning

Introduction Software versioning is an important practice in software development that tracks changes and updates to a codebase. It provides a structured way to identify different iterations of a

6 related posts