#git-branch #git-rebase #git-commit #commit-history #squash #upstream #git-history #non-interactive

bin+lib git-squish

A simply git addon which will perform a non-interactive rebase and squash the branch history into a single commit

5 releases

Uses new Rust 2024

0.1.4 Aug 15, 2025
0.1.3 Aug 14, 2025
0.1.2 Aug 14, 2025
0.1.1 Aug 14, 2025
0.1.0 Aug 14, 2025

#5 in #squash

Download history

60 downloads per month

MIT license

28KB
485 lines

git-squish

A Git utility that squashes commits on a branch into a single commit against an upstream branch.

Installation

Install via Cargo:

cargo install git-squish

Usage

Basic usage:

# Squash current branch onto origin/main
git squish main

# Squash specific branch onto upstream
git squish topic main

Arguments

  • [branch-refname] - Optional. The branch to squash (e.g., "refs/heads/feature"). If omitted, uses the current branch.
  • <upstream-spec> - Required. The upstream to rebase onto (e.g., "main" or "origin/main").

GPG Signing Support

git-squish will respect your existing Git GPG signing configuration. If you have GPG signing enabled in your Git config, the squashed commit will be signed automatically.

Dependencies

~13–20MB
~440K SLoC