Urgent.News

What's breaking now, across thousands of outlets.

Tech

I built GitCat 1.0 to replace Git Extensions for large repositories

GitCat did not start as a product. It started as an attempt to replace Git Extensions in one demanding workflow during my internship, then ended up on most of my team's laptops without me really planning it. The repository we worked in was huge, with a pile of submodules and a branch structure nobody could hold in their head. Git Extensions gave us the workflows we needed, but switching…

GitCat was initially developed as an attempt to replace Git Extensions in a demanding workflow during an internship. The repository being worked on was large, with numerous submodules and a complex branch structure that made it difficult for team members to manage. Git Extensions provided the necessary workflows, but switching between repositories or branches often required reloading history, leading to increased memory usage and slower performance on work laptops with limited resources.

To address these issues, the developer built a narrow solution called Cherry-Pick Helper. As colleagues tried it out, reported bugs, and requested additional features, the project grew and eventually evolved into GitCat. Along the way, GitCat developed an anime-inspired personality and was given a cat named Tama, who played a role in keeping the repository safe.

The main goal of GitCat is to provide a performance-focused alternative to Git Extensions for large, branch-heavy repositories. It focuses on ensuring that opening, scrolling, and switching between branches remain responsive as the repository history grows. Every operation that affects history should be reversible, and the codebase is open-source under GPL-3.0-or-later, built with Tauri 2, Rust, and Svelte 5.

Performance is a critical aspect of GitCat, as it aims to keep a 150k-commit graph responsive on large repositories. To achieve this, GitCat uses git2 for reads and a hand-tuned Rust swimlane layout for computing the graph's swimlanes. Results are streamed to a virtualized canvas, which paints only the visible region instead of creating a DOM node for every commit. This approach ensures smooth scrolling and fast rendering, even in repositories with deep, branch-heavy histories.

GitCat also prioritizes reversibility as a core feature. Before performing any mutation, its Safety Manager creates a snapshot of the repository, providing a global Undo shortcut (⌘Z) and ensuring that the undo action is itself undoable. This approach makes Git operations more recoverable, especially when working with complex workflows involving branches, submodules, staging, and recovery processes.

In addition to performance and reversibility, GitCat incorporates various Git functionalities, such as line- and hunk-level staging, cherry-pick and merge operations with a three-way conflict resolver, linear and interactive rebase, bisect with visual cues, per-file history with rename following, author and pickaxe searches, submodules, patch export/apply, stashes, rerere, and external diff/merge tools.

It also supports WSL-path on Windows and offers a ⌘K command palette, Vim-style navigation, and a multi-repository dashboard.

For users who prefer working with the command line, GitCat includes an "Open Terminal" command that drops them into a real shell at the repository root. While Claude Code assisted in the development process, the developer maintains full control over the workflows, safety boundaries, and released code. The principle of keeping Git operations visible and accountable remains central to GitCat's design, ensuring that users are aware of the changes made and can reverse operations when necessary.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

More from Wednesday 5 August →