Get started with Bitbucket Cloud
New to Bitbucket Cloud? Check out our get started guides for new users.
To start searching in Bitbucket, select the search field in the upper-right corner of the top navigation bar, then enter either a single word or an entire phrase (in double quotes).
The keyboard shortcut to start a search from anywhere in Bitbucket is " / ". Search terms can match the file path, filename, or any content within the file.
Search results in Bitbucket are code aware, which means your search results are ranked so that function and type definitions will display before other results. You can also use operators or modifiers to help you to refine search results.
The scope of a search changes according to where you are searching from:
Search context | Search scope |
---|---|
An account | All repositories owned or accessible to a user or workspace |
Repository | An individual repository and its sub-directories |
To search in public repositories that aren't associated to any accounts you have access to, go to that repository and search there.
Files can be found just by searching their filename or parts of the path. Using the path in your search only supports exact matches of path segments, but you can search using parts of the filename without a modifier. See the examples in the table below.
Query | Result |
---|---|
package.json | Finds files named package.json |
package lock json | Finds files that include package, lock, and json, such as package-lock.json |
package.json path:test | Finds files named package.json with a path that contains test |
MyClass | Finds files names MyClass.java and MyClassTest.java |
A phrase query can be used to find multiple words that appear in a specific order.
To search for a phrase, enclose the words in double quotes. For example, to find files with instances of the word abstract followed by the word class (or part of a word), your query would look like this.
1
"abstract class"
This query would also find instances such as " abstract(class ".
The same search query without the double quotes would return files that contain both abstract and class in any order.
Search operators can be used to refine your search results:
Operators must be in ALL CAPS.
Operators cannot be used alone; they must be used with an accompanying search term.
You cannot use AND in your search query; multiple search terms are implicitly combined. For example, a query for bitbucket jira means that only files that contain both bitbucket and cloud are matched.
These are the search operators available:
Operator | Example query | Results |
---|---|---|
none | bitbucket jira | Returns files that contain the terms bitbucket and jira, in any order |
NOT | bitbucket NOT jira | Returns files that contain bitbucket but don't contain jira |
- | bitbucket -jira | Used before a term; returns files that contain bitbucket but don't contain jira |
Examples of valid () and invalid () search syntax:
Valid | Query | Result |
---|---|---|
1
MyClass AND MyComponent NOT "YourClass" | AND is not valid syntax; search terms are implicitly combined | |
1
2
3
4
5
NOT "YourClass"
| Operators cannot be used alone; you must specify a search term to match before what to exclude | |
1
MyClass MyComponent NOT "YourClass" | Finds files that contain the terms MyClass and MyComponent but does not contain YourClass |
Modifiers can be used to refine search results:
Use a modifier in the form key:value.
You can combine multiple modifiers – see the section Use multiple modifiers below.
Modifiers can be negated using the NOT operator – see the section search operators above.
These are the search modifiers available:
Modifier | Example query | Results |
---|---|---|
1
repo:<repo slug> <term> | 1
repo:myrepo MyClass | Matches files in myrepo that contain the term MyClass Wildcards are not supported in repository names Only the default branch of the repository is searched |
1
project:<project key> <term> | 1
project:MYPROJ jira | Matches files in the project with key MYPROJ that contain the term jira |
1
path:<directory|filename> <term> | 1
path:src MyClass | Files with paths matching src which contain the term MyClass |
1
ext:<file extension> <term> | 1
ext:lhs jira | Matches Haskell files with the .lhs extension that contain the term jira |
1
lang:<language> <term> | 1
lang:c jira | Matches C files with the .c or .h extensions that contain the term jira |
Code search can be restricted to only consider a particular path. For the purpose of search, file paths are split up into segments (parts separated by /) including directories and filenames. Matching is done on one or more segment and is case-insensitive. There is no partial matching within a segment.
Example query | Results |
---|---|
1
path:src MyClass | Files with paths matching src which contain the term MyClass |
1
path:/src MyClass | Files with paths starting with src which contain the term MyClass |
1
path:src/main MyClass | Files with paths matching src/main which contain the term MyClass |
1
path:src/*/module MyClass | Files with paths matching src then anything then module which contain the term MyClass |
1
path:styles/*.css class | Files with paths matching styles with the extension css which contain the term class. Note that there can be any number of other segments between styles and the filename |
1
MyClass NOT path:src | Files which contain the term MyClass with paths that do not match src |
Code search can be restricted to only consider a particular language or a particular file extension. For some languages, adding a language criteria is equivalent to specifying the file extension. For example, lang:java is equivalent to ext:java. For other languages, multiple file extensions are mapped to a single language. For example, the .hs, .lhs and .hs-boot file extensions are used for the Haskell programming language, and will be matched when specifying lang:haskell.
Note that 'language' as used here is not related to the Language setting for a repository.
Click here to see all the languages recognized by code search...
1
ada asp.net assembly c c++ c# clojure cobol cql css cython fortran go groovy haskell html java
1
javascript json kotlin latex less lisp markdown mathematica matlab objective-c ocaml pascal perl php plain plsql properties python r ruby rust sas scala scss shell sieve soy sql swift velocity xml yaml
You don't need to use an operator with modifiers because modifiers are implicitly combined depending on their type. When using multiple search modifiers in your search query:
Search modifiers of the same kind are implicitly combined.
Search modifiers of different kinds are implicitly combined.
Search modifiers apply to the entire search expression.
For example, here is a query that would find files with either the .js or the .jsx extension, that are in either repo A or repo B, and that contain the phrase "search-term".
1
repo:A repo:B ext:js ext:jsx search-term
Examples of valid () and invalid () search syntax:
Valid | Query | Result |
---|---|---|
ext:js project:myProject MyComponent | Finds files with the js extension that are in the myProject project that contain the term MyComponent . | |
1
MyClass NOT repo:test | Find all files that contain the term MyClass excluding the test repository | |
1
MyClass -ext:java | Find all files that contain the term MyClass excluding java files | |
ext:js AND project:myProject MyComponent | AND is not valid syntax; search terms are implicitly combined | |
ext:js NOT project:myProject MyComponent | Finds files with the js extension in any project other than myProject that contain the term MyComponent | |
ext:js ext:java MyComponent | Finds files with the js OR java extension that contain the term MyComponent |
There are some things to consider regarding how searches are performed:
Search uses the main branch in a repository.
We index files smaller than 320 KB – you won't see search results from larger files.
Wildcard searches (e.g. qu?ck buil*) are not supported.
We strip the following characters from search terms: !"#$%&'()*+,/;:<=>?@[\]^`{|}~-
Regular expressions are not supported in queries.
Case is not preserved (but search operators must be in ALL CAPS).
Queries can have up to 9 expressions (i.e. combinations of terms and operators).
Queries can be up to 250 characters in length.
We make sure that you only see the code you have permission to view in search results.
Was this helpful?