I've accidentally put some white开发者_JAVA百科space 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.
To trim trailing whitespace on all files in the current directory, use:
sed -i 's/[[:space:]]*$//' *
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:
[core]
whitespace = trailing-space,space-before-tab
[apply]
whitespace = fix
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 indentation
apply.whitespace
is used when applying a patch. It checks for whitespace errors (the ones listed above, in core.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 in C:\Documents and Settings\user
).
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:]]*$//' {} \;
精彩评论