---
name: "gh-search-commits"
section: "1"
platform: "linux"
package: "github-cli"
version: "2.102.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gh-search-commits"
---

# gh-search-commits(1)

Search for commits

## NAME

gh-search-commits - Search for commits

## SYNOPSIS

**gh search commits \[\<query\>\] \[flags\]**

## DESCRIPTION

Search for commits on GitHub.

The command supports constructing queries using the GitHub search syntax, using the parameter and qualifier flags, or a combination of the two.

GitHub search syntax is documented at:

⟨https://docs.github.com/search-github/searching-on-github/searching-commits⟩

For more information on handling search queries containing a hyphen, run **gh search --help**.

## OPTIONS

- **--author** **\<string\>**

  Filter by author

- **--author-date** **\<date\>**

  Filter based on authored date

- **--author-email** **\<string\>**

  Filter on author email

- **--author-name** **\<string\>**

  Filter on author name

- **--committer** **\<string\>**

  Filter by committer

- **--committer-date** **\<date\>**

  Filter based on committed date

- **--committer-email** **\<string\>**

  Filter on committer email

- **--committer-name** **\<string\>**

  Filter on committer name

- **--hash** **\<string\>**

  Filter by commit hash

- **-q**, **--jq** **\<expression\>**

  Filter JSON output using a jq expression

- **--json** **\<fields\>**

  Output JSON with the specified fields

- **-L**, **--limit** **\<int\> (default 30)**

  Maximum number of commits to fetch

- **--merge**

  Filter on merge commits

- **--order** **\<string\> (default "desc")**

  Order of commits returned, ignored unless '--sort' flag is specified: {asc\|desc}

- **--owner** **\<strings\>**

  Filter on repository owner

- **--parent** **\<string\>**

  Filter by parent hash

- **-R**, **--repo** **\<OWNER/REPO\>**

  Filter on repository, in OWNER/REPO format

- **--sort** **\<string\> (default "best-match")**

  Sort fetched commits: {author-date\|committer-date}

- **-t**, **--template** **\<string\>**

  Format JSON output using a Go template; see "gh help formatting"

- **--tree** **\<string\>**

  Filter by tree hash

- **--visibility** **\<strings\>**

  Filter based on repository visibility: {public\|private\|internal}

- **-w**, **--web**

  Open the search query in the web browser

## JSON FIELDS

**author**, **commit**, **committer**, **id**, **parents**, **repository**, **sha**, **url**

## EXIT CODES

0: Successful execution

1: Error

2: Command canceled

4: Authentication required

NOTE: Specific commands may have additional exit codes. Refer to the command's help for more information.

## EXAMPLE

```
# Search commits matching set of keywords "readme" and "typo"
$ gh search commits readme typo
# Search commits matching phrase "bug fix"
$ gh search commits "bug fix"
# Search commits using raw search qualifiers as separate arguments
$ gh search commits fix author:monalisa merge:false
# Search commits committed by user "monalisa"
$ gh search commits --committer=monalisa
# Search commits authored by users with name "Jane Doe"
$ gh search commits --author-name="Jane Doe"
# Search commits matching hash "8dd03144ffdc6c0d486d6b705f9c7fba871ee7c3"
$ gh search commits --hash=8dd03144ffdc6c0d486d6b705f9c7fba871ee7c3
# Search commits authored before February 1st, 2022
$ gh search commits --author-date="<2022-02-01"
```

## SEE ALSO

**[gh-search(1)](/gh-search/1.md)**
