Features

Every part of your Git workflow, in one window

GitComet is a desktop Git client written in Rust. It reads your repository directly with gitoxide, renders through the GPU, and keeps every repository on your own machine. Nothing is uploaded.

Review

Diffs you can actually read

Most of the time you spend in a Git client is spent reading changes. GitComet treats the diff as the main view rather than a preview pane.

Inline and side-by-side

Switch layouts with Alt+I and Alt+S. Scroll sync can be vertical, horizontal, both, or off. Collapse to changed lines only when a file is mostly untouched.

Syntax highlighting

Syntax highlighting covers 44 languages, in the diff and in the editor views.

More than plain text

Rendered Markdown preview, side-by-side image and SVG diffs, and a minimap of the whole file. Search a diff with case, whole-word, and regular expression matching.

Side-by-side diff in GitComet with syntax highlighting and word-level change highlighting
Side-by-side diff with syntax and word-level highlighting.

Staging

Commit exactly what you meant to

A commit is easier to review when it contains one idea. GitComet lets you split work apart without rewriting the file.

File, hunk, or single line

Stage and unstage at any granularity, directly from the diff gutter. Press Space to stage the current file and jump to the next one.

Discard with care

Discard a single hunk instead of the whole file, amend the previous commit, and get a warning before staging a file that still contains conflict markers.

Ignore without leaving

Add an untracked file to .gitignore by exact name, by its folder, or by extension, straight from the context menu.

Staging an individual line from a diff hunk in GitComet
Staging one line out of a hunk.

History

History that stays fast when the repository is not small

GitComet was started because existing clients stopped being usable on codebases the size of Chromium. History loads in pages and renders while the walk is still running.

Rendered commit graph

A lane graph drawn on a custom canvas, tuned for repositories with tens of thousands of commits. Choose which columns you want and highlight the selected commit's chain.

Filter down to the change you want

Five history modes — everything reachable, first parent, no merges, merges only, or all branches — plus an author filter and per-file history.

Compare anything

Compare any two commits, branches, or tags. Compare any of them against your working tree, and the comparison updates as you edit. Browse the whole repository as it was at any commit.

GitComet commit history with the rendered lane graph and an active author filter
The commit graph with an active author filter.

Rewriting

Clean up a branch without writing a rebase todo by hand

History rewriting is where a GUI earns its place: the operations are easy to describe and easy to get wrong in a terminal.

Interactive rebase

Drag commits to reorder them, then pick, reword, squash, fixup, or drop. Autosquash groups fixup! and squash! commits the same way Git does.

Cherry-pick and squash

Interactive cherry-pick, squashing of contiguous commit ranges with a live message preview, revert, and rebase onto another ref.

Get back out again

Reset soft, mixed, or hard, and abort an in-progress merge, rebase, or cherry-pick. GitComet shows which sequencer state the repository is in.

The GitComet interactive rebase editor with reword and squash actions assigned to three commits
Picking a reword or a squash per commit in the interactive rebase editor.

Repository

The rest of Git, not just the parts that are easy to draw

Branches, remotes, and tags

Prune merged branches, set and clear upstreams, delete remote branches, edit fetch and push URLs separately, and create lightweight or annotated tags.

Worktrees and submodules

Worktrees are a first-class sidebar section, not an afterthought. Submodules show a diff summary and inline diffs, and any submodule command asks for trust before it runs.

Stashes and patches

Stash with or without untracked files, then apply, pop, or drop. Export a commit as a patch file, or apply one to the index or the working tree.

Push and pull the way you want

Pull as merge, rebase, fast-forward only, or fast-forward if possible. Force push with lease, and see how far ahead or behind the upstream you are.

Clone with progress you can cancel

Cloning reports live progress and can be aborted. Credential, SSH passphrase, and host-verification prompts appear in the app instead of a hidden terminal.

Blame that reads like history

Annotate any file at any revision. Lines are shaded by recency, uncommitted lines are marked as staged or unstaged, and any line jumps to the commit that introduced it.

GitComet blame view with recency heat colouring on each line
Blame, shaded by how recently each line changed.

Workflow

Fewer reasons to leave the window

Edit files in place

A built-in editor with syntax highlighting and optional autosave. Press Alt+E, fix the typo you just spotted in the diff, save, and stage it.

Embedded terminal

A real shell inside the panel for the commands no GUI should try to replace. Your external terminal and code editor are one shortcut away when you prefer them.

Command palette

Ctrl+P reaches close to 50 commands by name. Global back and forward navigation, repository tabs, pinned and recent repositories, and session restore on launch.

The GitComet command palette opened with Ctrl-P
The command palette.

Customization

Make it look and behave the way you want

Themes, including your own

Four built-in themes, plus an automatic mode that follows your operating system and switches live. Custom themes are JSON bundles dropped into a folder — about 30 interface colours and over 40 syntax tokens. See the theme guide.

Typography and scale

Pick your interface font and your editor font separately from the fonts installed on your system, toggle ligatures, and scale the whole interface without touching your display settings.

Links back to your forge

Copy a permalink to a commit or a file for GitHub, GitLab, Bitbucket, Azure DevOps, Gitea, Codeberg, Forgejo, and AWS CodeCommit. Commit hashes and URLs inside commit messages are clickable.

The same view in four themes: the built-in GitComet Dark and GitComet Light, then Tokyo Night and Sunset Veil, both custom. Any of them expands to full size.

Platform

Native on all three, including ARM

Windows

A signed MSI installer and a portable build, on x86-64 and ARM64. Also on the Microsoft Store.

macOS

A notarized disk image on Apple silicon and Intel, or brew install --cask gitcomet.

Linux

apt, AUR, Gentoo GURU, Homebrew, AppImage, and .deb, on x86-64 and ARM64. Wayland with an automatic X11 fallback, and WSLg.

GitComet needs a local Git installation of 2.50 or newer. It is licensed under the AGPL-3.0, and the workspace forbids unsafe Rust code outright.