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.
Features
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
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.
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 covers 44 languages, in the diff and in the editor views.
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.

Staging
A commit is easier to review when it contains one idea. GitComet lets you split work apart without rewriting the file.
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 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.
Add an untracked file to .gitignore by exact name, by its folder, or by extension, straight from the context menu.

History
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.
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.
Five history modes — everything reachable, first parent, no merges, merges only, or all branches — plus an author filter and per-file history.
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.

Rewriting
History rewriting is where a GUI earns its place: the operations are easy to describe and easy to get wrong in a terminal.
Drag commits to reorder them, then pick, reword, squash, fixup, or drop. Autosquash groups fixup! and squash! commits the same way Git does.
Interactive cherry-pick, squashing of contiguous commit ranges with a live message preview, revert, and rebase onto another ref.
Reset soft, mixed, or hard, and abort an in-progress merge, rebase, or cherry-pick. GitComet shows which sequencer state the repository is in.

Repository
Prune merged branches, set and clear upstreams, delete remote branches, edit fetch and push URLs separately, and create lightweight or annotated tags.
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.
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.
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.
Cloning reports live progress and can be aborted. Credential, SSH passphrase, and host-verification prompts appear in the app instead of a hidden terminal.
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.

Workflow
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.
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.
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.

Customization
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.
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.
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.
Platform
A signed MSI installer and a portable build, on x86-64 and ARM64. Also on the Microsoft Store.
A notarized disk image on Apple silicon and Intel, or brew install --cask gitcomet.
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.