blob: fe7850c59365012be2a3efb8c9ca2659c6b4dc1e [file] [log] [blame]
git-squash-branch(1)
====================
NAME
----
git-squash-branch -
include::_git-squash-branch_desc.helper.txt[]
SYNOPSIS
--------
[verse]
'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 linkgit: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
-------
demo:1[]
include::_aliases.txt[]
----
[alias]
git squash = squash-branch
----
SEE ALSO
--------
linkgit:git-rebase-update[1]
include::_footer.txt[]
// vim: ft=asciidoc: