Skip to content

Avijit07x/git-switch

Repository files navigation

Git Switch

Git Switch

A fast, native Git client that runs your dev servers too.

Tauri React Rust macOS Linux MIT


What it does

Multi-repo Git GUI with a built-in PTY-backed dev-server launcher. Switch branches, commit, push, and start every project's dev server from one window.

Highlights

  • Multi-repo sidebar with live status tints and an FS watcher.
  • Adaptive sync button that switches between Pull / Push / Publish / Fetch based on branch state.
  • Inline diff viewer and commit history popup.
  • Undo last commit (safe git reset --soft, never on pushed history).
  • AI commit messages via Gemini, with auto-fallback when a model is rate-limited.
  • Run targets like yarn dev, cargo run, each with its own xterm tab and port management.
  • Groups to bundle repos and run them in parallel.
  • Menu-bar tray showing the active repo's branch and ahead/behind status.
  • Desktop notifications when teammates push new commits to your branch.
  • Six accent themes (Neutral, Orange, Blue, Green, Rose, Violet) plus light/dark mode.
  • Async backend, so git fetch / pull / push never freeze the UI.

Install

One command. Detects your OS, fetches the latest release, drops it in the right place. Re-run to update.

curl -fsSL https://raw.githubusercontent.com/Avijit07x/git-switch/main/install.sh | bash

Build from source

git clone git@github.com:Avijit07x/git-switch.git
cd git-switch
yarn install
yarn tauri:dev

Prerequisites: Git, Node 20+, Rust stable. On Debian / Ubuntu also install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf.

First launch compiles roughly 400 Rust crates. Expect 2 to 5 minutes cold, seconds thereafter.

Build a release bundle

yarn tauri:build

Output lands in src-tauri/target/release/bundle/. The installer script handles signing quirks automatically; if you're distributing a manual build on macOS, strip the quarantine flag once:

xattr -dr com.apple.quarantine "/Applications/Git Switch.app"

Safety

Out of scope: force push, rebase, hard reset, discard, stash, and merge-conflict resolution. The one carve-out is git reset --soft HEAD~1 behind the Undo button, which only appears for local-only commits that haven't been pushed.

Auth uses your existing Git setup (SSH keys, Keychain, gh, credential helper). The Gemini API key, if set, lives in localStorage and is only sent to generativelanguage.googleapis.com when you click ✨ Generate.

License

MIT © Avijit Dey