How to List Unpushed Git Commits (Local but Not on Origin)

Better Stack Team
Updated on June 24, 2024

To list the unpushed Git commits (local commits that haven't been pushed to the remote repository), you can use the git log command in conjunction with the --branches, --not, and --remotes options. Here's how:

git log --branches --not --remotes

This command shows the commits that are reachable from any local branch (--branches) but not reachable from any remote branch (--remotes), indicating the commits that haven't been pushed to the remote repository.


  • The -not option negates the commits reachable from remote branches, effectively showing only the unpushed commits.
  • You can further customize the output of git log by using additional options such as -oneline, -graph, or -decorate to display a more compact or visually informative representation of the commit history.
  • If you want to see the unpushed commits for a specific branch, you can specify the branch name instead of using -branches.
Got an article suggestion? Let us know
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Make your mark

Join the writer's program

Are you a developer and love writing and sharing your knowledge with the world? Join our guest writing program and get paid for writing amazing technical guides. We'll get them to the right readers that will appreciate them.

Write for us
Writer of the month
Marin Bezhanov
Marin is a software engineer and architect with a broad range of experience working...
Build on top of Better Stack

Write a script, app or project on top of Better Stack and share it with the world. Make a public repository and share it with us at our email.

or submit a pull request and help us build better products for everyone.

See the full list of amazing projects on github