gix is a Git extension CLI tool designed to simplify your Git workflows — especially for merging commits and force pushing, with safety and clarity.
This repository contains two implementations:
- Rust Version — Modern, performant native binary (recommended)
- TypeScript Version — Original Node.js implementation
Both versions provide identical functionality. Choose based on your preference:
- Use Rust for a standalone binary with no runtime dependencies
- Use TypeScript if you prefer npm/pnpm package management
- 🔧 Interactively merge multiple Git commits
- 💬 Custom commit message input
- 🚦 Confirm force push automatically
- ♻️ Reset local commits to remote (soft)
- 🧱 Fully typed, powered by TypeScript
- 🔌 Modular command system — more to come
cargo install gix-cliOr build from source:
cd rust
cargo build --release
# Binary will be at rust/target/release/gixnpm install -g gix-cliThen use it globally:
gix mergegix mergeFollow the prompts to:
- Select start and end commits
- Write a new commit message
- Optionally force-push
Or directly:
gix merge -f <from> -m "your message"gix squash -n 3 # squash last 3 commitsgix squash --all # squash all history from rootgix doctor- Check git & node version
- Git repo state
- Working directory clean?
- Remote & branch info
gix reset- Soft reset to origin/branch
- Keeps all local file changes
- Removes unpushed commits only
MIT © 2025 Li Kai