git-stripspace(1)
=================

NAME
----
git-stripspace - Remove unnecessary whitespace


SYNOPSIS
--------
[verse]
'git stripspace' [-s | --strip-comments] < input

DESCRIPTION
-----------

Clean the input in the manner used by 'git' for text such as commit
messages, notes, tags and branch descriptions.

With no arguments, this will:

- remove trailing whitespace from all lines
- collapse multiple consecutive empty lines into one empty line
- remove empty lines from the beginning and end of the input
- add a missing '\n' to the last line if necessary.

In the case where the input consists entirely of whitespace characters, no
output will be produced.

*NOTE*: This is intended for cleaning metadata, prefer the `--whitespace=fix`
mode of linkgit:git-apply[1] for correcting whitespace of patches or files in
the repository.

OPTIONS
-------
-s::
--strip-comments::
	Skip and remove all lines starting with '#'.

EXAMPLES
--------

Given the following noisy input with '$' indicating the end of a line:

--------
|A brief introduction   $
|   $
|$
|A new paragraph$
|# with a commented-out line    $
|explaining lots of stuff.$
|$
|# An old paragraph, also commented-out. $
|      $
|The end.$
|  $
---------

Use 'git stripspace' with no arguments to obtain:

--------
|A brief introduction$
|$
|A new paragraph$
|# with a commented-out line$
|explaining lots of stuff.$
|$
|# An old paragraph, also commented-out.$
|$
|The end.$
---------

Use 'git stripspace --strip-comments' to obtain:

--------
|A brief introduction$
|$
|A new paragraph$
|explaining lots of stuff.$
|$
|The end.$
---------

GIT
---
Part of the linkgit:git[1] suite
