Решение, которое просто удаляет конечные пробелы из файла, неприемлемо при любых обстоятельствах. Он будет работать в проекте, в котором с самого начала применялась эта политика, поэтому нет таких пробелов, которые вы просто не добавили бы в предстоящем коммите.
Предположим, вы хотите просто не добавлять новые экземпляры конечного пробела, не затрагивая существующий пробел в строках, которые вы не редактировали, чтобы сохранить ваш коммит свободным от изменений, не имеющих отношения к вашей работе.
В этом случае с git вы можете использовать такой скрипт:
#!/bin/sh
set -e # bail on errors
git stash save commit-cleanup
git stash show -p | sed '/^\+/s/ *$//' | git apply
git stash drop
То есть мы храним изменения, а затем фильтруем все строки +
в diff, чтобы удалить их конечные пробелы при повторном применении изменения к рабочему каталогу. Если этот командный канал успешен, мы сбрасываем тайник.