I've accidentally put some whitespace in my initial commit - it shows up red in git diff --color
. What's the best way to get rid of the existing whitespace and how can I avoid this happening again?
I am not necessarily looking for a built-in git command. Any external program available for free on Ubuntu would also be welcome.
core.whitespace
instructs git to flag certain whitespace problems:trailing-space
warns about whitespace at the end of a line or at the end of a filespace-before-tab
warns when there is a space before a tab used for indentationapply.whitespace
is used when applying a patch. It checks for whitespace errors (the ones listed above, incore.whitespace
) and applies the patch after attempting to fix them (i.e., remove them).These options go in
~/.gitconfig
-- that is, a.gitconfig
file at the root of your user's home directory (typically/home/user/.gitconfig
on Linux,/Users/user/.gitconfig
on Mac OS X, and I don't know where on Windows but I suppose somewhere inC:\Documents and Settings\user
).To trim trailing whitespace on all files in the current directory, use:
To warn about future whitespace errors (both trailing spaces and spaces before tabs), and to fix whitespace errors in patches, add the following code to your
gitconfig
file:See this thread git remove trailing whitespace in new files before commit on using
git rebase
to strip whitespace from files that you've already committed.And to trim the white spaces from all files recursively from all sub directories this can be used.
find ./* -type f -exec sed -i 's/[[:space:]]*$//' {} \;