Получение мерзавца пачкает фильтр для работы в Ubuntu

Я пытаюсь заставить фильтр пятна мерзавца работать в человечности, как описано в этом ответе 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.

5
задан 23 May 2017 в 05:39

1 ответ

git checkout HEAD -- ** только преобразует файлы, которые имеют изменения. Неизменные файлы не будут затронуты, вот почему ничто не заменяется в них. Для принуждения обновления всех файлов Вы могли удалить их и затем сбросить. Но удостоверьтесь, что у Вас нет незафиксированных изменений, потому что они будут потеряны. Например, Вы могли сделать это:

git rm -r .
git reset --hard

Или, если Вы предпочитаете, Вы могли бы заменить только весь .h и .cpp файлы с:

rm **/*.{h,cpp}
git checkout .
2
ответ дан 23 November 2019 в 10:35

Другие вопросы по тегам:

Похожие вопросы: