How can I do git add with patch mode but ignoring whitespace changes.
The use case is for when you\'ve reformatted a file and also made changes to it. I want to commit t
Note: This answer is old. 6 years down the road, the other answer by Justin is much better. Prefer to use
git apply --cached
I suggest simply roundtripping a diff
Idea:
git diff --ignore-all-space | (git reset --hard && git apply)
Warning: this is fraught with danger because of the git reset
there (it will not preserve changes to binary files as written). Perhaps you'd want a bash function similar to
function cleanup_patch()
{
if [ $# -lt 1 ]; then
echo 'Must provide explicit paths (wildcards allowed)';
else
git diff --ignore-all-space -- "$@" |
(git checkout HEAD -- "$@" &&
git apply)
fi
}
Afaict the seemingly useful --binary
option to diff doesn't honour the whitespace ignore flags