Я пытаюсь заставить фильтр пятна мерзавца работать в человечности, как описано в этом ответе stackoverflow: https://stackoverflow.com/questions/2316677/can-git-automatically-switch-between-spaces-and-tabs
Цель состоит в том, чтобы преобразовать пробелы во вкладки на контроле.
В моем .gitconfig у меня есть эта запись:
[filter "tabspace"]
smudge = unexpand --tabs=4 --first-only
clean = expand --tabs=4 --initial
Как пример, рассмотрите репозиторий lxqt-панели, который использует пробелы для добавления отступа: https://github.com/lxde/lxqt-panel
В lxqt-panel/.git/info/attributes
, Я включил фильтр tabspace:
*.cpp filter=tabspace
*.h filter=tabspace
Согласно Ответу Stackoverflow различные источники онлайн, работая git checkout HEAD -- **
должен теперь преобразовать все пробелы во вкладки. Однако в моем случае мерзавец, кажется, игнорирует эти настройки полностью; выполнение unexpand
вручную работы все же.
Что я пропускаю здесь?
Я использую мерзавца 2.11.0 на Ubuntu 16.04.
git checkout HEAD -- **
только преобразует файлы, которые имеют изменения. Неизменные файлы не будут затронуты, вот почему ничто не заменяется в них. Для принуждения обновления всех файлов Вы могли удалить их и затем сбросить. Но удостоверьтесь, что у Вас нет незафиксированных изменений, потому что они будут потеряны. Например, Вы могли сделать это:
git rm -r .
git reset --hard
Или, если Вы предпочитаете, Вы могли бы заменить только весь .h
и .cpp
файлы с:
rm **/*.{h,cpp}
git checkout .