SYNOPSIS

git squash-branch [-m <message>]

DESCRIPTION

git squash-branch is a simple helper command. It takes all the commits on the current branch from the merge_base to HEAD, and reduces them to a single commit. The new commit will contain a summary of all the commits which were squashed, preceeded by a header message indicating that it’s the result of a squash (or the message you pass on the command line.).

Squashing branches is useful when trying to rebase-update over branches which were pushed to their upsteram (or committed by the Commit Queue), and then conflicting changes landed in upstream on top of the push/commit. If you know that your branch was committed but git-rebase-update(1) isn’t able to automatically clean it, you can squash the troublesome branch before git rebase-update, and then when git rebase-update presents the conflict, you can verify that the conflict diff is what you expected (and then skip it with git rebase --skip).

OPTIONS

-m <message>
--message=<message>

Optional message to use for the first line of the squashed commit. If omitted, it defaults to "git squash commit.".

EXAMPLE

$ git map
* a8f0220	 (frozen_branch) 2014-04-10 ~ FREEZE.unindexed
* c382556	 2014-04-10 ~ modfile
* 06e399f	 2014-04-10 ~ a deleted file
* 20494d2	 (fixit) 2014-04-10 ~ Add neat feature    <(frozen_branch)
* f734bbf	 2014-04-10 ~ Epic README update
| * 983a7b8	 (cool_feature) 2014-04-10 ~ Respond to CL comments
| | * 2f53c1f	 (subfeature) 2014-04-10 ~ integrate with CoolService
| | * b4e5087	 2014-04-10 ~ slick commenting action
| |/
| * ac10591	 2014-04-10 ~ another improvement    <(subfeature)
| * 088691d	 (spleen_tag) 2014-04-10 ~ Refactor spleen
| * 206ceb2	 2014-04-10 ~ Add widget
|/
* 619ccc9	 (origin/master, origin/HEAD) 2014-04-10 ~ Make ReflectorImpl use mailboxes    <(cool_feature, fixit)
* 40b838e	 2014-04-10 ~ don't use glibc-specific execinfo.h on uclibc builds
* 65db351	 2014-04-10 ~ [fsp] Add requestUnmount() method together with the request manager.
* c1923e0	 2014-04-10 ~ linux_aura: Use system configuration for middle clicking the titlebar.
* ccaca03	 2014-04-10 ~ ContentView->ContentViewCore in ContentViewRenderView
* 9b1c1ab	 2014-04-10 ~ ozone: evdev: Filter devices by path
* a91bbf9	 2014-04-10 ~ Always output seccomp error messages to stderr
$ git squash-branch -m 'cool squash demo'
$ git map
* 5b451bd	 (frozen_branch) 2014-04-10 ~ cool squash demo
* 20494d2	 (fixit) 2014-04-10 ~ Add neat feature    <(frozen_branch)
* f734bbf	 2014-04-10 ~ Epic README update
| * 983a7b8	 (cool_feature) 2014-04-10 ~ Respond to CL comments
| | * 2f53c1f	 (subfeature) 2014-04-10 ~ integrate with CoolService
| | * b4e5087	 2014-04-10 ~ slick commenting action
| |/
| * ac10591	 2014-04-10 ~ another improvement    <(subfeature)
| * 088691d	 (spleen_tag) 2014-04-10 ~ Refactor spleen
| * 206ceb2	 2014-04-10 ~ Add widget
|/
* 619ccc9	 (origin/master, origin/HEAD) 2014-04-10 ~ Make ReflectorImpl use mailboxes    <(cool_feature, fixit)
* 40b838e	 2014-04-10 ~ don't use glibc-specific execinfo.h on uclibc builds
* 65db351	 2014-04-10 ~ [fsp] Add requestUnmount() method together with the request manager.
* c1923e0	 2014-04-10 ~ linux_aura: Use system configuration for middle clicking the titlebar.
* ccaca03	 2014-04-10 ~ ContentView->ContentViewCore in ContentViewRenderView
* 9b1c1ab	 2014-04-10 ~ ozone: evdev: Filter devices by path
* a91bbf9	 2014-04-10 ~ Always output seccomp error messages to stderr

SUGGESTED ALIASES

Some common short-hand aliases. Feel free to add these to your ~/.gitconfig file.

[alias]
  git squash = squash-branch

SEE ALSO

CHROMIUM DEPOT_TOOLS

Part of the chromium depot_tools(7) suite. These tools are meant to assist with the development of chromium and related projects. Download the tools from here.