Developers rely on version control to review changes before committing. However, IntelliJ-based IDEs have a significant limitation: after committing code, all change indicators in version control and line status annotations disappear completely. Since feature branches typically contain multiple commits, this makes it difficult to track accumulated changes over time. This plugin addresses that problem by making committed changes visible again.
Create custom "scopes" for any Git reference—branch, tag, or commit hash. Each defined scope appears as a selectable tab in the Git Scope tool window. The currently selected scope visualizes changes through:
- Scope tree diff — Shows all modified files in the Git Scope tool window
- File colors - Files highlighted in editor tabs and project window according to the Git Scope status (added; modified; deleted; ...)
- Editor line status — Displays change markers in the editor gutter for open files
- Custom scope — Enables filtered search, replace, and inspection operations
- Status bar widget — Displays the current scope selection
The plugin will add a new tool window named Git Scope:
By default, it will appear as a secondary tool window on the left side, but you can move it anywhere to suit your workflow. Plugin settings are available under Settings → Tools → Git Scope.
To add a new scope, click the "+" tab on the Git Scope panel:

In the "New*" tab you get a few different options to define the scope:
- Select either a local or remote branch in the current repo. If the repo contains sub-repos, all repos will be listed with the main repo being the first repo in the list.
- Alternatively, you can manually type the branch, tag or git reference and press Enter. A git reference can be any
valid
git reference such as
HEAD~2,<long hash>,<short hash>, ... - If you want to bind the scope to the common ancestor for
HEADand the current selected scope reference, you can check the common ancestor checkbox. This makes it possible to for example selectmasterand your scope will be compared to the common ancestor ofmasterandHEAD. And you are free to pull new changes ontomasterwithout affecting the scope. - If the list of branches is long, it can be filtered using the search box.
Whenever the scope selection is done, the tab will turn into a "change browser" (similar to version control) that displays the current diff of the Git Scope.
Right click on any file will present a number of actions:
- Show Diff: Opens a diff window showing the diff of the selected file(s)
<selected-scope>..HEAD - Show in Project: Highlight this file in the Project tool window
- Rollback...: Rollback the selected files(s) to
<selected-scope>version. Note that this will checkout the selected scope version of the file(s), and will in many cases leave you with a modified file that no longer show up in the Git Scope window since it is identical to the version pointed to by the scope. Commit the files using the standard Commit tool window.
Git Scope uses its own plugin-native gutter rendering system to show scope-aware diff markers directly in the editor. This avoids the side-effects and interference with native IDE functionality that earlier versions of the plugin experienced when hooking into the IDE's own gutter system.
Note: The Git Scope gutter markers are only visible when the IDE setting Version Control → Confirmation → Highlight modified lines in gutter is enabled.
Each changed line is marked with a colored bar — inserted, modified, and deleted lines each get their own dedicated color as defined by the active IDE theme — relative to the selected Git Scope target. Clicking any marker opens a popup with the following actions:
- ↑ / ↓ — Navigate to the previous or next change
- ↺ — Rollback this change to the scope base version
- Diff — Open an inline diff showing exactly what changed
- Copy — Copy the original scope-base content to the clipboard
An overview stripe on the right-hand scrollbar provides a full-file summary of scope changes, making it easy to spot hotspots without scrolling.
The gutter markers can be positioned in two ways, controlled via Settings → Tools → Git Scope:
Merged mode (default) — Scope markers appear inline with the IDE's native gutter markers. Both sets of markers are visible at the same time:
Separate mode — Scope markers are rendered in a dedicated column to the left of the line numbers. This makes it immediately clear which changes are relative to the Git Scope target and which are uncommitted local changes shown by the IDE's native HEAD diff markers:
Adds a custom Scope (used to do inspections, search/replace, etc), i.e. search results are filtered by Git Scope.
READ: https://www.jetbrains.com/help/phpstorm/scopes.html
To see the current selection of the Git Scope even when the tool window is not open, you can look at the status bar widget.
The tab name is per default set to the selected scope reference. If the selected scope is a git hash, you can rename the scope tab name by right clicking on the tab and selecting "Rename Tab". Any renamed tab will show the original Git Scope reference as a tooltip. You can rest the tab name to the original Git Scope scope reference by right clicking on the tab and selecting "Reset Tab Name".
In the Git panel, you can right-click on any commit and select "Use Commit as Git Scope" to automatically add the commit as a new Git Scope.
The Project tool window can be filtered to show only files that are part of the current Git scope. When this filter is enabled, the IDE controls the Project view’s lifecycle and updates. As a result, the Project tool window might not immediately reflect changes to the Git scope.
Git Scope appears in the Select In dialog, so you can locate any file directly in the Git Scope tool window from Select In.
The Git Scope window itself also has the "Select Opened File" action button, so you can highlight any file directly in the Git Scope tool window (if the file is part of the current selected scope):
Plugin settings are available under Settings → Tools → Git Scope:
| Setting | Description |
|---|---|
| Separate Git Scope and IDE gutter rendering | When enabled, Git Scope gutter markers are rendered in a dedicated column to the left of the line numbers, separate from the IDE's native markers. When disabled (default), both sets of markers share the same gutter column. |
| Color files based on Git Scope | When enabled (default), file colors in the project tree and editor tabs reflect the active Git Scope status. Disable to use the IDE's default HEAD-based file coloring. |
| Shortcut | Description |
|---|---|
| Alt+H | Toggle between HEAD and last Git Scope selection |
| Shortcut | Description |
|---|---|
| Ctrl+D (on any file in a changes browser) | Open diff window |
| F7 | step forward (in diff window) |
| Shift+F7 | step backward (in diff window) |
Build (build/distributions)
./gradlew buildPluginRun/debug plugin
./gradlew runIdeVerify
./gradlew verifyPlugin












