JetBrains engineers implemented an in-memory interactive rebase optimization for JetBrains IDEs, reducing execution time from tens of seconds to a few seconds on large repositories like the IntelliJ monorepo. Instead of checking out commits sequentially and updating the working tree and index, the IDE now uses Git plumbing commands (git cat-file, git commit-tree, git merge-tree, git update-ref) to rebuild commit chains entirely in memory. If a merge conflict is detected, it falls back to the standard Git rebase. The optimization covers reword, drop, squash, and extract-to-separate-commit operations. EAP telemetry confirmed consistent improvements across macOS, Windows, and Linux, with ~12% of rebases encountering conflicts that trigger the fallback. The feature ships by default in the 2026.1 release.
Table of contents
IntroductionInteractive rebase: A technical deep diveIn-memory rebase optimization: How it worksResultsCredits and further readingSort: