VGit
A native visual Git client that combines a topology-aware commit graph with safe staging, committing, synchronization, and repository exploration.
Understanding the project
The idea in plain language.
VGit turns a repository into a visual workspace: commit history and merge topology stay visible beside working-tree changes, staged changes, diffs, branches, tags, remotes, and the source tree.
The current application is a native Rust rewrite built with GPUI. It executes real Git commands through argument arrays, keeps blocking work off the UI thread, and makes destructive operations name the work that will be lost before they run.
Core capabilities
What the project can do.
- Draws branch lanes and merge edges from the real commit graph rather than assigning a branch permanently to a commit.
- Stages and unstages individual files or whole sections, previews diffs, and creates commits from the interface.
- Supports checkout, revert, soft/mixed/hard reset, amend, stash operations, fetch, fast-forward-only pull, and push.
- Shows local and remote refs, annotated tags, repository status, and a browsable source tree.
- Separates index and working-tree views for partially staged files and previews untracked text as additions.
- Uses confirmations for hard reset, discard, clean, stash drop, and amend operations.
Typical workflow
How someone uses it.
-
1
Launch VGit inside a repository or choose another repository with Open.
-
2
Inspect the graph, refs, selected commit, source tree, and working state in one workspace.
-
3
Review file diffs, select changes, stage them, enter a commit message, and commit.
-
4
Fetch, pull with fast-forward-only semantics, or push through the repository controls.
Under the hood
Technology and design choices.
- Rust 1.98+
- GPUI
- Git CLI
- Native macOS bundle
- Cargo
Important considerations
What to know before using it.
- Development is currently validated on macOS; Windows and Linux support has not been confirmed.
- Conflict resolution, hunk-level staging, interactive rebase, reflog recovery, worktrees, submodules, and Git LFS are roadmap items.
- Local application bundles are unsigned, and Git authentication relies on existing credential helpers or the SSH agent.