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.

Studying, evaluating, and explaining AI systems for over 6 years.

โ€œ๐˜–๐˜ฏ๐˜ค๐˜ฆ ๐˜ฎ๐˜ฆ๐˜ฏ ๐˜ต๐˜ถ๐˜ณ๐˜ฏ๐˜ฆ๐˜ฅ ๐˜ต๐˜ฉ๐˜ฆ๐˜ช๐˜ณ ๐˜ต๐˜ฉ๐˜ช๐˜ฏ๐˜ฌ๐˜ช๐˜ฏ๐˜จ ๐˜ฐ๐˜ท๐˜ฆ๐˜ณ ๐˜ต๐˜ฐ ๐˜ฎ๐˜ข๐˜ค๐˜ฉ๐˜ช๐˜ฏ๐˜ฆ๐˜ด ๐˜ช๐˜ฏ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ฉ๐˜ฐ๐˜ฑ๐˜ฆ ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ต๐˜ฉ๐˜ช๐˜ด ๐˜ธ๐˜ฐ๐˜ถ๐˜ญ๐˜ฅ ๐˜ด๐˜ฆ๐˜ต ๐˜ต๐˜ฉ๐˜ฆ๐˜ฎ ๐˜ง๐˜ณ๐˜ฆ๐˜ฆ. ๐˜‰๐˜ถ๐˜ต ๐˜ต๐˜ฉ๐˜ข๐˜ต ๐˜ฐ๐˜ฏ๐˜ญ๐˜บ ๐˜ฑ๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ต๐˜ต๐˜ฆ๐˜ฅ ๐˜ฐ๐˜ต๐˜ฉ๐˜ฆ๐˜ณ ๐˜ฎ๐˜ฆ๐˜ฏ ๐˜ธ๐˜ช๐˜ต๐˜ฉ ๐˜ฎ๐˜ข๐˜ค๐˜ฉ๐˜ช๐˜ฏ๐˜ฆ๐˜ด ๐˜ต๐˜ฐ ๐˜ฆ๐˜ฏ๐˜ด๐˜ญ๐˜ข๐˜ท๐˜ฆ ๐˜ต๐˜ฉ๐˜ฆ๐˜ฎ.โ€ โ€” ๐–ฅ๐—‹๐–บ๐—‡๐—„ ๐–ง๐–พ๐—‹๐–ป๐–พ๐—‹๐—, ๐–ฃ๐—Ž๐—‡๐–พ

Login to continue reading and enjoy expert-curated content.

Responses From Readers

Clear