Решение, которое просто удаляет конечные пробелы из файла, неприемлемо при любых обстоятельствах. Он будет работать в проекте, в котором с самого начала применялась эта политика, и поэтому нет таких пробелов, которые вы просто не добавили в предстоящий коммит.
Предположим, вы хотите просто не добавлять новые экземпляры конечного пробела, не затрагивая существующие пробелы в строках, которые вы не редактировали, чтобы сохранить ваш коммит свободным от изменений, которые не имеют отношения к вашей работе.
В этом случае с 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, чтобы удалить их пробелы, когда мы повторно применяем изменения к рабочему каталогу. Если этот командный канал успешен, мы сбрасываем тайник.