Как я могу удалить конечные пробелы только на измененных строках в git-хуке перед фиксацией? - PullRequest
12 голосов
/ 22 марта 2012

Я видел несколько предложенных решений, но почти все они удаляют пробелы из всего файла, если он был изменен, что не вариант. Я также попробовал:

git diff -w --no-color | git apply --cached

но, похоже, тоже не работает. Я использую git версии 1.6.3.1 и не могу его обновить.

Ответы [ 3 ]

9 голосов
/ 05 июня 2012

Нашел ответ:

git diff --cached --no-color > stage.diff && git apply --index -R stage.diff && git apply --index --whitespace=fix stage.diff && rm -f stage.diff
1 голос
/ 27 марта 2012

У меня нет такого удобного сценария, но я думаю, хорошей отправной точкой является пример ловушки предварительной фиксации, который поставляется с git (до того, как он был преобразован в diff --check).По крайней мере, он только предупреждает о добавленных строках.

представление gitweb скрипта предварительной фиксации

0 голосов
/ 27 июля 2015

Этот вопрос немного устарел, но у меня git ws есть псевдоним git rebase --whitespace=fix

Вы можете настроить похожий псевдоним, запустив

git config --global alias.ws 'rebase --whitespace=fix'

Это будет принимать любые коммиты, которые вы еще не выдвинули, и повторно применять их после исправления пробела только на тех линиях, которые вы изменили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...