Top 20 Must Know Git Commands

Vasu Deo Sankrityayan Last Updated : 16 May, 2025
6 min read

Git can feel like a puzzle until you learn the key moves. In this guide, you’ll find the top 20 Git commands, ordered by how often they are used. Each entry starts with a quick “What it does” summary, followed by an image displaying its functionality. No walls of text, no unexplained flags, no perusing through the documentation. Just practical, bite-size entries that you can use as a cheat sheet. Let’s make Git simple, fast, and fun.

1. git commit

Creates a new commit from staged changes, assigning a snapshot ID and message.

git commit -m []

Example:

git commit

The command records “First commit” and displays its commit hash and summary.

*You can only commit if you’ve staged first

2. git status

Reports untracked, modified, and staged files to indicate the next steps.

git status []

Example:

git status

We can see that file1.txt is appearing red, which indicates that git has not started tracking this file.

3. git add

Stages specified file changes, moving them into the index for the next commit.

git add .

Example:

Git add

The output (using status command) confirms that file1.txt has been added to the staging area.

4. git push

Sends your local commits on a branch up to a remote repo.

git push

Example:

git push origin main

Uploads your main branch commits to “origin”.

5. git pull

Fetches and merges changes from a remote branch into your current branch.

git pull [] []

Example:

git pull origin dev

Gets origin/dev and merges it into what you’ve checked out.

6. git clone

Creates a local copy of a remote repository.

git clone []

Example:

git clone

The clone process fetches objects and deltas, creating an AV_Article_Codes folder.

7. git branch

Lists, creates, or deletes branches in your repo.

git branch [] []

Example:

git branch

In the example, a new branch test is created alongside master.

8. git checkout

Switches to another branch or restores files from a specific commit.

git checkout <branch|commit> [--] []

Example:

git checkout

The output indicates a successful switch from master to the test branch.

9. git merge

Integrates another branch’s commits into your current branch.

git merge [--no-ff]

Example:

git merge --no-ff feature/api

Merges feature/api and always creates a merge commit.

10. git log

Displays the project’s commit history in reverse chronological order.

git log []

Example:

git log

The log lists the commits – “First commit” along with its timestamps and authors.

11. git diff

Shows line-by-line differences between commits, branches, or index vs. working tree.

git diff [--staged] […]

Example:

git diff

Using --staged displays the diff of a newly added file3.txt ready for commit.

12. git stash

Temporarily saves uncommitted changes, cleaning the working directory.

git stash [save ]

Example:

git stash

Stashing records the current state on branch test and returns a clean working tree.

13. git init

Initializes a new Git repository by creating a .git directory and displaying branch-naming hints.

git init []

Example:

Git init

The example shows repository initialization with guidance on renaming the default branch.

14. git fetch

Downloads commits and refs from a remote without merging them.

git fetch [] []

Example:

git fetch --all

Pulls updates from every configured remote.

15. git reset

Moves your HEAD and optionally updates the index or working tree.

git reset [] []

Example:

git reset

A hard reset to the first commit discards later changes and resets HEAD accordingly.

16. git revert

Creates a new commit that undoes changes from a past commit.

git revert

Example:

git revert a1b2c3d

Adds a commit that reverses a1b2c3d without rewriting history.

17. git rebase

Moves your commits onto a new base, keeping history linear.

git rebase [-i]

Example:

git rebase -i main

Lets you reorder, squash, or edit commits interactively.

18. git show

Displays metadata and patch details for a given commit or object.

git show []

Example:

Git show

Showing a specific hash prints its author, date, commit message, and the diff of file2.txt.

19. git cherry-pick

Applies one specific commit from another branch onto your current HEAD.

git cherry-pick

Example:

git cherry-pick f4e5d6c

Pulls that single change into your branch

20. git bisect

Automates a binary search to find which commit introduced a bug.

git bisect [good/bad/start]

 Example:

git bisect start; git bisect bad; git bisect good v1.0

Narrow down the bad commit in a few steps.

Best Practices

Here are some of the go-tos when it comes to git commands:

  • Keep commits small: Focus each commit on one change and write clear messages.
  • Use branches: Do feature work on its own branch, then merge via pull requests.
  • Stash before switching: Avoid half-done commits by stashing WIP changes first.
  • Rebase locally: Clean up your branch history before sharing, but never rebase shared branches.
  • Review with diff/log: Always glance at git diff and git log before pushing.
Top 20 Git commands

Conclusion

You now have the top 20 Git commands, each with a quick “what it does,” and a one-line example. Start by practicing the first five until they’re second nature, then add branching, merging, rebasing, and stashing to your muscle memory. Keep this list handy in Google Docs or your sticky notes. You can visit this guide if you are new to Git or GitHub to get a head start. With these commands under your belt, you’ll spend less time wrestling with version control and more time writing code. Go ahead, open your terminal and level up your Git game!

Frequently Asked Questions

How do I undo changes in a file before committing?

Use git checkout — <file> to discard unstaged edits and restore the last committed version.

What’s the easiest way to combine multiple commits into one?

Run git rebase -i <base> and squash the commits you want to merge into a single, tidy commit.

How can I pause my work and come back later without committing half-finished code?

Stash your changes with git stash and reapply them when you’re ready using git stash pop.

What’s the real difference between git fetch and git pull?

Git fetch downloads updates from the remote without touching your files, while git pull fetches and merges in one step. The two git commands might seem similar in their functionality, but their applications are vastly different.

How do I track down the commit that introduced a bug?

Use git bisect to do a binary search through your history and pinpoint the exact bad commit.

I specialize in reviewing and refining AI-driven research, technical documentation, and content related to emerging AI technologies. My experience spans AI model training, data analysis, and information retrieval, allowing me to craft content that is both technically accurate and accessible.

Login to continue reading and enjoy expert-curated content.

Responses From Readers

Clear